sql: sybase与oracle中insert into select和select into的用法

1. sybase与oracle中insert into select和select into的用法 http://wjlvivid.iteye.com/blog/1921679

Sybase

一、首先,我们来看一下insert into select语句

  其语法形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1。

  这里的要求就是Table2必须已经存在,如果不存在,系统则会提示对象无效。

  例如
insert into boy
select id,name
from person
where type='boy'
通过insert .... select ...语句,select的结果会被直接插入表boy中,并且每个插入操作都会被记录到事务日志之中。

  二、Sybase还提供了一种"select ... into"语句实现类似功能

  select into from 语句,该语法形式为:SELECT value1, value2 into Table2 from Table1。

  这里要求的是MyTable1不存在,因为在插入的时候,系统会自动创建MyTable1,如果之前MyTable1已经被创建,执行时会报错,系统就会提示已经存在表。

  就是因为这个特性,就会给我们带来很多的方便,首先,我如果只想要MyTable2表中的ID列的话那我只需要将ID列select出来,然后加入到新表中即可。那如果我想要MyTable2中的Name列,那我也仅仅是需要把Name列select出来,然后添加到新表中即可。

Oracle

 Oracle中insert into select和select into的用法(异常0RA-00905:missing keyword的解决) 
两张表进行数据的拷贝,最常用的拷贝语句是:insert into select 和 select into from

但是请绝对的注意:
在Oracle中select into from不可以使用-----

  原因很简单:select into是PL/SQL language 的赋值语句!如果使用则Oracle会抛出0RA-00905:missing keyword的异常!
但是可以用create table select代替该功能!

-- PL/SQL language 中select into赋值语句的测试使用
create or replace procedure test1_prod
is
  aa varchar2(100);
begin
  select t1.testname into aa from test1 t1 where id=1;
  dbms_output.put_line('t1.testname= '|| aa);
end;

原文地址:https://www.cnblogs.com/mylinux/p/4992244.html