2012-12-08 44 views
0

什麼我想在這裏實現,在單個語句如何使用返回到得到的返回值。返回與WHERE NOT EXISTS

我使用下面的代碼,但得到語法錯誤。

set serveroutput on; 
DECLARE 
    D_ID NUMBER DEFAULT 0; 
BEGIN 
    INSERT INTO admin_depts 
       (name, 
       description, 
       created_by, 
       status) 
    SELECT 'SMS', 
      'SMS Team', 
      'admin', 
      'PEN' 
     FROM dual 
    WHERE NOT EXISTS (SELECT 1 
         FROM admin_depts 
         WHERE name = 'SMS') RETURNinG ID INTO D_ID; 

    dbms_output.put_line(D_ID); 
END; 
+1

由於不是有效的語法,因此會出現語法錯誤!簡單!返回可以保存單個值,但是您可以返回多行。 – Annjawn

+0

@Annjawn,SELECT'SMS','SMS Team','admin','PEN'FROM dual將只返回一行 –

+2

是的,在你的情況下它可能會「可能」,但是oracle的設計並不是只保留你的想法。選擇查詢大多數情況下會返回多行,但它也可能返回一行或者不行,RETURNING如何知道這一點? – Annjawn

回答

2

插入...選擇...返回是not supported

在參考文章中有一些建議的解決方法。