2012-06-03 31 views
3

我使用多行插入語法在Oracle SQL這樣的:多行INSERT

INSERT ALL 
    INTO student(ID, FIRST_NAME, LAST_NAME, AGE) VALUES(4,'test_name','test_lname',17) 
    INTO student(ID, FIRST_NAME, LAST_NAME, AGE) VALUES(5,'test_name2','test_lname2',20) 
    INTO student(ID, FIRST_NAME, LAST_NAME, AGE) VALUES(6,'test_name3','test_lname3',21) 
    select * from dual; 

誰能給我解釋一下什麼是使用

SELECT * FROM雙

的意義

at和of語句?

回答

6

它的語法INSERT ALL

INSERT ALL 
INTO <table_name> VALUES <column_name_list) 
INTO <table_name> VALUES <column_name_list) 
... 
<SELECT Statement>; 

,如果有什麼要選擇插入後你做select * from dual

否則你做你的選擇通常要確認插入成功

reference

+0

@Davit khaburdzania你的問題是什麼用的意思'SELECT * FROM雙'在插入statment結束沒有什麼'從雙重選擇*'是什麼?!我想我的答案適合你的問題!對? – shareef

+0

是的我的問題是使用select * from dual的含義是什麼。 ,如果使用插入的語法都是這樣,我明白了。 但是爲什麼我應該在插入東西后總是選擇一些東西? –

+0

,因爲使用它的語法需要選擇一些東西,如果你不想選擇某些東西,你必須從'dual'中選擇*,它將返回一個空行,它就是這樣! – shareef

3

DUAL表是默認情況下在所有 Oracle數據庫安裝中存在的特殊的單行表。它適用於選擇僞列,如SYSDATE或USER。該表有一個名爲DUMMY的單個 VARCHAR2(1)列,其值爲'X'。

更多關於此herehere