oracle insert union all,用insert all实现同时向多表插入数据

提问者自己觉见着写15条insert太没技术含量(呵呵,怎么叫有技术含量呢),希望看到其它的不同写法。就其需求而言我觉着insert语句应该是最简单最高效的写法,不过发贴者提出的问题倒是让我想起了oracle自9i开始提供了insert

all语法,借助该语法实现如下:SQL>create table tba(id

varchar2(10),name

varchar2(10),code

number,message number);Table

created

SQL>create table tbb(id

varchar2(10),name

varchar2(10),code

number,message number);Table

created

SQL>create table tbc(id

varchar2(10),name

varchar2(10),code

number,message number);Table

created

SQL>SQL>insert all

2 into tba values(id,name,code,messagea)3

into tbb values(id,name,code,messageb)4

into tbc values(id,name,code,messagec)5

select'0001'id,'xiaoming'name,1 code,140

messagea,55 messageb,1000

messagec from dual

6 union all

7 select'0001','xiaoming',2,112,33,897 from dual

8 union all

9 select'0001','xiaoming',3,84,57,233 from dual

10 union all

11

select'0001','xiaoming',4,56,67,777 from dual

12 union all

13

select'0001','xiaoming',5,28,45,1278 from dual

14/15 rows inserted

SQL>select*from

tba;ID NAME CODE MESSAGE----------

---------- ---------- ----------0001 xiaoming 1 140

0001

xiaoming 2 112

0001 xiaoming 3 84

0001 xiaoming 4 56

0001 xiaoming 5

28

SQL>select*from tbb;ID NAME CODE

MESSAGE---------- ---------- ---------- ----------0001

xiaoming 1 55

0001 xiaoming 2 33

0001 xiaoming 3 57

0001 xiaoming 4

67

0001 xiaoming 5 45

SQL>select*from tbc;ID NAME CODE

MESSAGE---------- ---------- ---------- ----------0001

xiaoming 1 1000

0001 xiaoming 2 897

0001 xiaoming 3 233

0001 xiaoming 4

777

0001 xiaoming 5 1278

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值