在Oracle数据库中,如果将一张表里面的数据复制到另外一个对象中。通常会有这两种方法:insert into select 和 select into from
?? insert into select:是PL/SQL language 的赋值语句,可以将select 出来的N行(0到任意数)结果集复制一个新表中
?? select into from:是标准的SQL语句,可以将"一行"结果复制到一个变量中
下面做过简单的测试看出俩者的区别
表和表数据
1 2 3 4 5 6 7 8 9 10 11 12 13 | create table demo1( id number primary key, testname varchar2(20) ); create table demo2( id number primary key, testname varchar2(20) ); insert into demo1 values(1,'凌小花'); insert into demo1 values(2,'呱呱是呱呱'); insert into demo1 values(3,'龙在天'); |
测试insert into select,执行完insert into之后就以及把demo1的数据复制到demo2的表里面去了,可以复制多个
1 2 | insert into demo2 select * from demo1; select * from demo2; |
测试select into from,只能复制一条
1 2 3 4 5 6 7 8 9 10 11 | create or replace procedure demo_proc is demotype demo1%rowtype; begin select d1.* into demotype from demo1 d1 where d1.id=1; end; declare begin demo_proc(); end; |