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;