Answers:
如果NEW_TABLE已经存在,则...
insert into new_table
select * from old_table
/
如果要基于OLD_TABLE中的记录创建NEW_TABLE ...
create table new_table as
select * from old_table
/
如果目的是创建一个新的但空的表,则使用WHERE子句,其条件永远不能为真:
create table new_table as
select * from old_table
where 1 = 2
/
请记住,CREATE TABLE ... AS SELECT仅创建一个与源表具有相同投影的表。新表没有原始表可能具有的任何约束,触发器或索引。那些仍然必须手动添加(如果需要)。
select into
在pl / sql中用于将变量设置为字段值。相反,使用
create table new_table as select * from old_table
select into
是pl / sql的一部分。它是用于编写存储过程的语言,与sql标准没有直接关系。是的,Oracle做了很多事情,这些事情从来都不是标准=)
SELECT INTO
是不是标准的SQL。该标准仅定义create table .. as select ..
select into
创建新表不是该标准的一部分。用于基于选择创建表的SQL标准是create table .. as select ...
。在SQL标准SELECT INTO
中,定义为以编程语言将列值读取到变量中