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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM