oracle数据库中批量把一张表里面的数据插入到不同的表中的方法

   日期:2020-09-14     浏览:102    评论:0    
核心提示:oracle数据库中批量把一张表里面的数据插入到不同的表中的方法

oracle数据库中批量把一张表里面的数据插入到不同的表中的方法(insert first into | insert all into)

准备环境

1.oracle数据库自带的scott下的用户表
2.跟emp表表结构相同的两张表,表名我定义为emp_a,emp_b

建表:
create table emp_a as select * from emp where 1 > 2;  -- 只要表结构,不要表数据
create table emp_b as select * from emp where 1 > 2;  -- 只要表结构,不要表数据

EMP表数据–

用法解析

insert first into: 这种方式表示要把数据分别插入到不同的表中,从上往下第一张表匹配成功的数据在下面的表中不会再进行二次匹配
-- 把emp表中部门大于等于30的数据插入到emp_a表中 --把部门大于等于20的数据插入到emp_b表中
insert first 
 when deptno >= 30 THEN
into emp_a
 when deptno>= 20 then
into emp_b
select * from emp;

执行代码后emp_a表数据

执行代码后emp_b表数据

解析:由于使用的是first,在第一次成功匹配到部门30的数据并且插入到emp_a表中,第二次匹配deptno>=20的时候由于30部门的数据已经匹配到e m p_a表中,不会进行二次匹配,所以emp_a表中只有20 部门的数据

继续往下说insert all into的用法
首先清空emp_a emp_b表中的数据
truncate table emp_a;
truncate table emp_b;

insert all into: 这种方式表示要把数据分别插入到不同的表中,从上往下第一张表匹配成功的数据在后面的表中如果满足条件的话也会进行匹配
-- 把emp表中部门大于等于30的数据插入到emp_a表中 --把部门大于等于20的数据插入到emp_b表中
insert all 
 when deptno >= 30 THEN
into emp_a
 when deptno>= 20 then
into emp_b
select * from emp;

emp_a表数据

emp_b表数据

思维导图

注:由于楼主表达能力有限,表达不清晰之处敬请谅解,可私下与楼主进行沟通!

2020-09-13 第一篇博客

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服