insert all(在Oracle中,通过一个INSERT ALL语句批量插入数据)

:暂无数据 2026-04-30 12:00:02 0
关于insert all,有一个概念至关重要,那就是在Oracle中,通过一个INSERT ALL语句批量插入数据。它为何如此重要?且听我们慢慢道来。

本文目录

在Oracle中,通过一个INSERT ALL语句批量插入数据

Oracle:
INSERT ALL
INTO A(field_1,field_2) VALUES (value_1,value_2)
INTO A(field_1,field_2) VALUES (value_3,value_4)
INTO A(field_1,field_2) VALUES (value_5,value_6)
SELECT 1 FROM DUAL;

在Mybatis中使用
《insert id="insertData" parameterType="*****"
useGeneratedKeys="false"》
INSERT ALL
《foreach item="item" index="index" collection="list"》
INTO T_GZL_BZ
(
ID,
JGH,
JGMC,
DW,
JGLX,
BZLB,
JGZWLB,
EDGZL,
ZGGZL,
BZ,
**RBH,
**RXM,
**SJ,
SFSZ
) VALUES
(
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=NUMERIC},
#{*****,jdbcType=NUMERIC},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=VARCHAR},
#{*****,jdbcType=DATE},
#{*****,jdbcType=VARCHAR}
)
《/foreach》
SELECT 1 FROM DUAL
《/insert》

mapper:
/**
* @param createList
* @return
*/
int insertData(@Param("list") List《WorkloadStandardDto》 createList);

insert 和insert all的区别

insert into 表X select......
一般使用在X的字段和后面select查询出来的结果集字段一样多,并且在数据库中X表字段的顺序、类型和结果集一致
如:X表(id,name,age)
那么select语句最好写成
select id,name,age form XXXX where .....;
如果字段名不一样,可以使用别名;
如:XXXX(sid,sname,sage)
insert into 表X select sid id ,sname name,sage age form XXXX where .....;
最好自己建2张表多练习练习,自己也容易记住

oracle存储过程 循环判断插入 急!!!!!!!!

不需要两个游标。
把查出来的内容 放到一起,吧type 放到一起, 平且排序
然后再根据type 依次插入,游标中,进行if逻辑判断就可以了。

用insert 语句同时插入俩个表

INSERT
插入多个表中
在以前的版本中,如果想插入多个表中,需要使用多条INSERT语句,9I开始可以用一条INSERT语句实现向多个表中插入数据.
INSERT
(subquery)
其中conditional_insert_clause如下:
上面的语法说明其实包含了两种情况
》无条件
》有条件,所以后面的conditional_insert_clasue里出现的是分属两种情形下的
举例就很容易理解了
无条件INSERT ALL
INSERT ALL
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT employee_id EMPID,hire_date HIREDATE,salary SAL,manager_id MGR
FROM employees
WHERE employee_id》200;
因为没有附加限制于检索出的记录,所以所有检索返回数据讲根据其列名插入相应的表中.
有条件的INSERT ALL
INSERT ALL
WHEN SAL》10000 THEN
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
WHEN MGR》200 THEN
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT employee_id EMPID,hire_date HIREDATE,salary SAL,manager_id MGR
FROM employees
WHERE employee_id》200;
这里就将比较了,返回记录将比较其SAL,如果大于10000则插入SAL_HISTORY,同理,MGR大于200的记录将插入MGR_HISTORY表.其余都将丢弃.
有条件的FIRST INSERT
FIRST与ALL的区别在于当遇到第一个求值为TRUE的子句之后停止对WHEN子句求值,而ALL不论是否求值为TRUE.
INSERT FIRST
WHEN SAL》25000 THEN
INTO special_sal VALUES(DEPTID,SAL)
WHEN HIREDATE like (’%00%’) THEN
INTO hiredate_history_00 VALUES(DEPTID,HIREDATE)
WHEN HIREDATE like (’%99%’) THEN
INTO hiredate_history_99 VALUES(DEPTID,HIREDATE)
ELSE
INTO hiredate_history VALUES(DEPTID,HIREDATE)
SELECT department_id DEPTID,SUM(salary) SAL,
MAX(hire_date) HIREDATE
FROM employees
GROUP BY department_id;
上例中如果第一个WHEN子句求值为TRUE则其后的WHEN子句将不会被执行,反之将直到遇到第一个满足条件的子句执行为止.

oracle insert into 脚本怎么写

INSERT INTO BOOK(bookid,name,price)  VALUES(’100123’,’oracle ’,54);

或者

INSERT INTO tablename(bookid,name,price)

SELECT ’100123’,’oracle,54 FROM DUAL;

总结下Oracle 中的Insert用法

1.标准Insert --单表单行插入

语法:

INSERT INTO table VALUE (value1,value2,...) 

例子:  

insert into dep (dep_id,dep_name) values(1,’技术部’); 

2, 无条件 Insert all --多表多行插入

语法:

INSERT

(subquery) 

示例:

INSERT ALL

INTO sal_history(emp_id,hire_date,salary) values (empid,hiredate,sal)

INTO mgr_history(emp_id,manager_id,salary) values (empid,hiredate,sal)

SELECT employee_id empid,hire_date hiredate,salary sal,manager_id mgr

FROM employees

WHERE employee_id》200; 

3,有条件的Insert

语法:

INSERT

WHEN condition THEN insert_into_clause values_clause

......

Subquery; 

示例:

Insert All

when id》5 then into z_test1(id, name) values(id,name)

when id《》2 then into z_test2(id) values(id)

else into z_test3 values(name)

select id,name from z_test; 

4, 旋转Insert (pivoting insert) 

create table sales_source_data (

employee_id number(6),

week_id number(2),

sales_mon number(8,2),

sales_tue number(8,2),

sales_wed number(8,2),

sales_thur number(8,2),

sales_fri number(8,2)

);

insert into sales_source_data values (176,6,2000,3000,4000,5000,6000); 

create table sales_info (

employee_id number(6),

week number(2),

sales number(8,2)

);

示例如下:

insert all

into sales_info values(employee_id,week_id,sales_mon)

into sales_info values(employee_id,week_id,sales_tue)

into sales_info values(employee_id,week_id,sales_wed)

into sales_info values(employee_id,week_id,sales_thur)

into sales_info values(employee_id,week_id,sales_fri)

select employee_id,week_id,sales_mon,sales_tue,

sales_wed,sales_thur,sales_fri

from sales_source_data;

oracle的多表插入

  在业务处理过程中 经常会碰到将业务数据按照条件分别插入不同的数据表的问题 按照传统的处理方式 需要分条件执行多次检索后分别插入不同的表单 这样因为执行了重复的检索造成cpu和内存的浪费 从oracle i开始引入了insert all关键字支持将某张表的数据同时插入多张表单 语法如下

  Insert all Insert_into_clause subquery;

  Insert conditional_insert_clause subquery;

  如上所示 insert_into_clause用于指定insert子句 value clause用于指定值子句 subquery用于指定提供数据的子查询 condition_insert_clause用于指定insert条件子句

  当使用all操作符执行多表插入时 在每个条件子句上都要执行into子句后的子查询 并且条件中使用的列必须在插入和子查询的结果集中

   创建测试用表

  createtable tdate(

  idvarchar ( )

  namevarchar ( )

  birthday datedefaultsysdate

  );

   插入数据

  insertinto tdate values( zhangsan to_date( YYYY MM DD ));

  insertinto tdate values( zhangsan to_date( YYYY MM DD ));

  insertinto tdate values( lisi to_date( YYYY MM DD ));

  insertinto tdate values( wangwu default);

  insertinto tdate(id name) values( zhangsan );

  mit;

   创建接收用测试表

  createtable tdate asselect * from tdate where = ;

  createtable tdate asselect * from tdate where = ;

  mit;

   使用all关键字执行多表插入操作

  insertall

  when birthday 》 月 theninto tdate

  when birthday 《 月 theninto tdate

  whenname = zhangsan theninto tdate

  whenname = lisi theninto tdate

  select * from tdate;

  在上述操作语句中 如果原表tdate中存在既满足birthday 》 月 又满足name = zhangsan 的数据 那么将执行两次插入 而使用first关键字就可以避免这个问题 使用first关键字时 如果有记录已经满足先前条件 并且已经 *** 入到某个表单中(未必非要是同一个表) 那么该行数据在后续插入中将不会被再次使用 也就是说使用first关键字 原表每行数据按照执行顺序只会 *** 入一次

  insertfirst

  when birthday 》 月 theninto tdate

  when birthday 《 月 theninto tdate

  whenname = zhangsan theninto tdate

  whenname = lisi theninto tdate

lishixinzhi/Article/program/Oracle/201311/18168

oracle MERGE into跟insert all有什么区别

MERGE into 的操作包含了update,和insert操作,如果数据存在就执行update,如果数据不存在就执行insert操作

**L中的insert all怎么用

标准**L中是没有insert all的,每个insert语句只能插入一行,并且每个insert语句只能对一张表执行插入数据操作。

感谢你读到最后。这通常意味着你对insert all是真正感兴趣的。这份兴趣,是最好的老师。
本文编辑:admin

本文相关文章:


insert all(oracle MERGE into跟insert all有什么区别)

insert all(oracle MERGE into跟insert all有什么区别)

本文将围绕insert all展开,重点探讨三个方面:oracle MERGE into跟insert all有什么区别的基本概念、常见误区以及实践应用。让我们开始吧。

2026年4月14日 06:40

更多文章:


sort命令的具体使用方法(linux sort 命令整理)

sort命令的具体使用方法(linux sort 命令整理)

sort命令的具体使用方法和linux sort 命令整理,看似独立,实则血脉相连。它们是如何相互影响的?本文将为你层层剖析。

2026年4月30日 14:40

php上传视频并转码怎么弄(跪求php转码程序)

php上传视频并转码怎么弄(跪求php转码程序)

花费5分钟阅读本文,您将获得对php上传视频并转码怎么弄和跪求php转码程序的清晰认知,远超自己搜索数小时的效果。

2026年4月30日 14:20

vscode输入了代码怎么运行(visual studio code怎么运行代码)

vscode输入了代码怎么运行(visual studio code怎么运行代码)

有没有觉得vscode输入了代码怎么运行听起来很高深?别怕,今天我们就把它和visual studio code怎么运行代码一起,拆解成易懂的小知识点。

2026年4月30日 14:00

象棋中的对象图片(象棋中的马怎么叫别马腿)

象棋中的对象图片(象棋中的马怎么叫别马腿)

朋友们,对象棋中的对象图片感到陌生再正常不过了。本篇内容将化身您的指南针,帮您在象棋中的马怎么叫别马腿的迷雾中找到方向。

2026年4月30日 13:40

不是jquery的选择器(jquery的核心功能不是根据选择器查找HTML元素然后对元素执行相应操作这句话是对是错 )

不是jquery的选择器(jquery的核心功能不是根据选择器查找HTML元素然后对元素执行相应操作这句话是对是错 )

当我们讨论不是jquery的选择器时,我们真正需要关注的是什么?很多高手的答案都指向了:jquery的核心功能不是根据选择器查找HTML元素然后对元素执行相应操作这句话是对是错 。为什么?

2026年4月30日 13:20

jvm调优主要是调哪里(JVM 性能调优方法)

jvm调优主要是调哪里(JVM 性能调优方法)

在深入了解jvm调优主要是调哪里的路上,JVM 性能调优方法就像一道绕不开的坎。别担心,本篇攻略将助你轻松跨越。

2026年4月30日 13:00

c语言随机产生0 10的整数(c语言:随机产生的100个0到10之间的整数,设计程序,统计0到10的个数)

c语言随机产生0 10的整数(c语言:随机产生的100个0到10之间的整数,设计程序,统计0到10的个数)

大家好,关于c语言随机产生0 10的整数很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于c语言:随机产生的100个0到10之间的整数,设计程序,统计0到10的个数的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解

2026年4月30日 12:40

matlab的imwrite函数(matlab如何用out输出图像)

matlab的imwrite函数(matlab如何用out输出图像)

是不是总觉得matlab的imwrite函数的知识体系太庞大,matlab如何用out输出图像更是无从下手?本文将帮你化繁为简,抓住核心。

2026年4月30日 12:20

insert all(在Oracle中,通过一个INSERT ALL语句批量插入数据)

insert all(在Oracle中,通过一个INSERT ALL语句批量插入数据)

关于insert all,有一个概念至关重要,那就是在Oracle中,通过一个INSERT ALL语句批量插入数据。它为何如此重要?且听我们慢慢道来。

2026年4月30日 12:00

oracle建库步骤(在命令行如何创建oracle实例与数据库,需要详细点教程,谢谢)

oracle建库步骤(在命令行如何创建oracle实例与数据库,需要详细点教程,谢谢)

想高效掌握oracle建库步骤的核心吗?本文将为你聚焦在命令行如何创建oracle实例与数据库,需要详细点教程,谢谢这一关键环节,帮你节省大量摸索时间。

2026年4月30日 11:40

最近更新

matlab的imwrite函数(matlab如何用out输出图像)
2026-04-30 12:20:02 浏览:0
insert all(在Oracle中,通过一个INSERT ALL语句批量插入数据)
2026-04-30 12:00:02 浏览:0
热门文章

split函数 sql(求sql split函数的用法)
2026-03-26 20:40:01 浏览:1
mysql insert into字段顺序问题(mysql insert into的问题)
2026-04-13 16:00:02 浏览:1
标签列表