我是靠谱客的博主 称心酸奶,最近开发中收集的这篇文章主要介绍oracle整张表格导入,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表数据–

52325bfcf623733789eb62aa40e7005e.png

用法解析

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表数据

40655362924c0a26f7c0b5fbb3d3d346.png

执行代码后emp_b表数据

0b2a28fe4bb7cf029547212b469a4375.png

解析:由于使用的是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表数据

a7457616e08a827148c4007fc27a3554.png

emp_b表数据

c390cc3754fa6471aff72552e1b6141a.png

思维导图

37234f363952f0cce2704030b185e8b5.png

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

2020-09-13 第一篇博客

最后

以上就是称心酸奶为你收集整理的oracle整张表格导入,oracle数据库中批量把一张表里面的数据插入到不同的表中的方法...的全部内容,希望文章能够帮你解决oracle整张表格导入,oracle数据库中批量把一张表里面的数据插入到不同的表中的方法...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部