学习时候,曾讲过二者区别。
select into 将选择的结果创建新表,insert into select则是将结果插入到已有表中。
如:
select * into NewTable from ATable; --创建一个新表NewTable ,将ATable数据插入其中。
insert into OldTable select * from ATable; --将ATable中数据插入到已有表OldTable 中。
今天在sql/plus中第一句怎么也执行不下去,总是报"ORA-00905:缺失关键字"。啥原因呢?一查,原来是PL/Sql与T-SQL区别。
T-SQL中该句正常,但PL/SQL中解释是:
select..into is part of PL/SQL language which means you have to use it inside a PL/SQL block. You can not use it in a SQL statement outside of PL/SQL.
即不能单独作为一条sql语句使用,一般在程序块中给变量赋值。
如果在PL/SQL中实现该功能,可使用Create table newTable as select * from ...:
如: create table NewTable as select * from ATable;
select into 将选择的结果创建新表,insert into select则是将结果插入到已有表中。
如:
select * into NewTable from ATable; --创建一个新表NewTable ,将ATable数据插入其中。
insert into OldTable select * from ATable; --将ATable中数据插入到已有表OldTable 中。
今天在sql/plus中第一句怎么也执行不下去,总是报"ORA-00905:缺失关键字"。啥原因呢?一查,原来是PL/Sql与T-SQL区别。
T-SQL中该句正常,但PL/SQL中解释是:
select..into is part of PL/SQL language which means you have to use it inside a PL/SQL block. You can not use it in a SQL statement outside of PL/SQL.
即不能单独作为一条sql语句使用,一般在程序块中给变量赋值。
如果在PL/SQL中实现该功能,可使用Create table newTable as select * from ...:
如: create table NewTable as select * from ATable;