`

oracle 多表插入 insert all 用法(即列转行)

 
阅读更多

建表语句:

 

create table ORDERS(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);   
create table small_customers(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);   
create table medium_customers(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER); 
create table large_customers(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);   
create table order_sums(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);  
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 10);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (1001, 20);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (1002, 30);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (800, 5);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (900, 6);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (700, 7);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (10000, 100);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (20000, 200);
insert into ORDERS (CUSTOMER_ID, SUM_ORDERS) values (30000, 300);
insert into ORDER_SUMS (CUSTOMER_ID, SMALL_SUM_ORDERS, MEDIUM_SUM_ORDERS, LARGE_SUM_ORDERS) values (1000, 10, 20, 30);
insert into ORDER_SUMS (CUSTOMER_ID, SMALL_SUM_ORDERS, MEDIUM_SUM_ORDERS, LARGE_SUM_ORDERS) values (900, 1, 2, 3);
insert into ORDER_SUMS (CUSTOMER_ID, SMALL_SUM_ORDERS, MEDIUM_SUM_ORDERS, LARGE_SUM_ORDERS) values (10000, 100, 200, 300);

 

1.插入到多张表用法

insert all 
  when customer_id < 1000 then 
     into small_customers 
  when customer_id >= 1000 and customer_id < 10000 then 
     into medium_customers 
  else 
     into large_customers
  select customer_id, sum_orders from orders;

 

 

2.多列转一行用法

  insert all 
    into small_customers(customer_id, sum_orders)
      values(customer_id, small_sum_orders) 
    into small_customers(customer_id, sum_orders)
      values(customer_id, medium_sum_orders) 
    into small_customers(customer_id, sum_orders)
      values(customer_id, large_sum_orders)
    select customer_id,
           small_sum_orders,
           medium_sum_orders,
           large_sum_orders
      from order_sums;

 

分享到:
评论
1 楼 lihao312 2012-10-23  
insert all功能好强大哦 之前都没有用到过
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    oracle中insert, 插入批量插入及union

    oracle中insert, 插入批量插入及union

    PostgreSQL多表插入(兼容oracle insert all)

    在oracle中我们可以使用insert all或者insert first语句,两者语法基本一致,区别在于: insert first:对于每一行数据,只插入到第一个when条件成立的表,不继续检查其他条件。 insert all :对于每一行数据,对每...

    Oracle中多表关联批量插入批量更新与批量删除操作

    在Oracle数据库中,进行多表关联的批量插入、批量更新和批量删除操作是常见的数据库管理任务,尤其是在处理大量数据时,这些操作能显著提高效率并减少资源消耗。本文将详细探讨这三个方面,并通过实例代码来展示如何...

    Oracle导出INSERT语句

    在数据库管理中,有时我们需要将数据从一个环境迁移到另一个环境,或者备份某些表的数据,这时“Oracle导出INSERT语句”的工具就显得非常实用。 这个小工具的核心功能是将Oracle数据库中的数据转换为一系列的INSERT...

    Oracle导出INSERT语句V1.1

    INSERT语句是用来向数据库表中插入新记录的基本SQL命令。它的基本格式如下: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` Oracle导出INSERT语句工具可能包含以下特性: 1. **选择表**:...

    oracle 多表做update insert语句.docx

    Oracle 多表 Update 语句详解 在 Oracle 中,Update 语句是数据库操作中的重要组成部分。 Update 语句可以对数据库中的数据进行修改,更新和插入。今天,我们将讨论 Oracle 中的 Update 语句,包括 Update 语句的...

    oracle的列转行问题

    Oracle 列转行问题解决方案 Oracle 数据库中,列转行问题是一个非常传统的话题。在这个问题中,我们需要将行数据转换成不同的列表示,或者将不同的列数据写到同一列的不同行上。这种问题在实际应用中非常常见,如将...

    Java实现mybatis批量插入数据到Oracle

    4. 最后,在Controller层或其他业务逻辑中调用`batchInsert`方法,传入包含多个User对象的列表,完成批量插入。 为了优化性能,还可以调整Oracle数据库的设置,例如增大批处理大小、禁用 autocommit 等。同时,注意...

    Oracle 临时表用法

    ### Oracle 临时表用法详解 #### 一、背景与问题描述 在处理数据库操作时,经常遇到因数据量庞大而导致处理效率降低的问题。例如,某个报表中心的存储过程执行速度过慢,其中一个原因是该过程涉及到一个中间表,...

    oracle根据表数据生成insert语句

    使用方法分为写文件和写表的方式,写文件需要先创建directory并需要相应的权限,写表则需要首先创建basedata表和seq_basedata序列 过程里面支持类型有number ,char,varchar2,date,如果有其他类型,请自己在过程...

    java代码oracle数据库批量插入

    ### Java代码实现Oracle数据库批量插入的关键知识点 #### 1. JDBC连接配置 - **JDBC URL**: `jdbc:oracle:thin:@IP:1521:orcl`,这里的URL指定了连接到Oracle数据库的方式。其中`@IP:1521:orcl`中的IP是指数据库...

    Oracle的列转行问题

    要将这些列数据转换为行,传统的做法是使用`UNION ALL`来合并多条SELECT语句,但这种方法会导致多次访问数据,从而影响性能。 作者提出了一个创新的解决方案,利用`DECODE`函数配合子查询来实现列转行,以提高查询...

    oracle向数据库里插入图片

    在Oracle数据库中插入图片涉及到BLOB(Binary Large Object)数据类型,这是Oracle用来存储大量二进制数据,如图片、音频或视频文件等的一种方式。本文将详细介绍如何在Oracle数据库中插入、查询和管理图片。 首先...

    ORACLE 列转行 DECODE函数用法

    下面我们将详细讲解DECODE函数的使用方法以及如何在列转行操作中应用它。 DECODE函数的基本语法如下: ```sql DECODE(column, value1, result1, value2, result2, ..., default_result) ``` 这里`column`是要检查的...

    oracle通过1条语句插入多个值的方法示例

    我想往数据库插入多条数据时,使用了如下语句: insert into 表1 (字段1,字段2) values (1,2),(2,3),(3,4); 这条语句在mysql中执行的话,语法一点毛病都没有,但是,在oracle上执行一直报错: ORA-00933: SQL ...

    ORACLE 多表查询与数据修改

    ### ORACLE 多表查询与数据修改 #### 学习目标 - **熟悉三个或四个表的连接查询**:在实际应用中,我们往往需要从多个表中获取数据以完成复杂的业务逻辑。通过本节的学习,您将能够掌握如何利用Oracle数据库进行多...

    向Oracle数据库插入Clob大段文本解决方法

    代码片段展示了通过创建`OracleParameter`对象并设置其类型为`OracleType.Clob`来插入CLOB数据的基本方法。具体步骤如下: 1. **构建SQL语句**:首先构造一个INSERT语句,其中包含CLOB字段的占位符`(:lgContent)`。...

    通过.bat文件连接oracle 插入数据库记录

    标题中的“通过.bat文件连接Oracle 插入数据库记录”指的是使用批处理(.bat)脚本来操作Oracle数据库,实现数据的插入功能。Oracle是全球知名的关系型数据库管理系统,而批处理脚本则是在Windows操作系统中运行的一...

Global site tag (gtag.js) - Google Analytics