--两张表进行数据拷贝,最常用的拷贝语句
--insert into select 和 select info from
--在oracle中select info from 不可以使用,原因很简单
--select into 是PL/SQL language的赋值语句
--如果使用,则oracle会抛出ORA-00905:missing keyword的异常
--但可以用create table select 代替该功能
create table A
(
ID VARCHAR2(20),
NAME VARCHAR2(20)
)
create table B
(
ID VARCHAR2(20),
NAME VARCHAR2(20)
)
insert into a values('1','a');
insert into a values('2','b');
insert into a values('3','c');
select * from A
--select * into B from A
--先将B表删除,这个新表是执行过程中创建的,不能够预先存在
create table B as select * from A
select * from A
select * from B
--使用insert into select语句时,B表必须预先存在
insert into B select * from A
--insert into select 和 select info from
--在oracle中select info from 不可以使用,原因很简单
--select into 是PL/SQL language的赋值语句
--如果使用,则oracle会抛出ORA-00905:missing keyword的异常
--但可以用create table select 代替该功能
create table A
(
ID VARCHAR2(20),
NAME VARCHAR2(20)
)
create table B
(
ID VARCHAR2(20),
NAME VARCHAR2(20)
)
insert into a values('1','a');
insert into a values('2','b');
insert into a values('3','c');
select * from A
--select * into B from A
--先将B表删除,这个新表是执行过程中创建的,不能够预先存在
create table B as select * from A
select * from A
select * from B
--使用insert into select语句时,B表必须预先存在
insert into B select * from A
总结:
数据拷贝,建议使用insert into select;
使用insert into select时如果对拷贝表生成id序列值,需要在select中以查询出的形式从sequence中查询出,再插入拷贝表;