SQL大全------之 oracle关于insert all的用法
转载INSERT FIRST
同时插入到多张表,在这里整理下,以供查阅。先建两个测试表,ww1,ww2
SQL> desc ww1
SQL> desc ww2
无条件INSERT,同时向这两表插入数据
insert all
已创建38行。
SQL> select count(*) from ww1;
----------
可以看到总共插入了38行,每个表插入了19行
条件INSERT,当每个不同条件成立的时候插入不同表
insert all
when object_type='TABLE' then into ww1 values (object_id,object_name)
when object_type='SYNONYM' then into ww2 values (objecT_id,object_name,object_type)
select object_id,object_name,object_type
from user_objects
已创建727行。
SQL> select count(*) from ww1;
----------
SQL> select count(*) from ww2;
----------
可以看到,符合object_type='TABLE'的718条记录被插入到ww1表中,符合object_type='SYNONYM'的9条记录被插入到ww2表中,总共插入了718条记录。
条件FIRST INSERT
---------- --------------------------------------
看到前9条记录中,INDEX 有4条.于是写如下SQL测试
insert first
when object_type='INDEX' then into ww values (object_id)
已创建715行。
SQL> select count(*) from ww;
----------
SQL> select * from ww1;
---------- ---------------------
可以看到,用FIRST后,凡是符合第一个条件的就都插入第一个表,其他的数据才再以后的条件里再判断.
用这种写法,也可以达到行转列的目的.
TINSERT 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插入之 insert all、insert first
Oracle插入之 insert all、insert first
Oracle 数据 .net 删除数据 -
Oracle应用之insert all用法简介
insert all是oracle中用于批量写数据的现在直接通过例子学习一下,比较简单直观,例子
oracle insert all 写数据 数据 -
oracle insert all 复合表插入
oracle中insert all / first 简单用法
oracle all insert