運行此查詢的SQL開發者:dbms_out返回第1列:PLS-00428:一個INTO子句中的SELECT語句預計
SET SERVEROUTPUT ON
BEGIN
DBMS_OUTPUT.PUT_LINE ('schema > table > key ');
SELECT 'table_name' TABLE_NAME , t.* FROM table_name t ;
END ;
我得到這個消息:
Error report -
ORA-06550: line 4, column 1: PLS-00428: an INTO clause is expected in
this SELECT statement
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
而當我一個接一個地運行這兩個語句,它工作正常。 那麼爲什麼我會得到錯誤以及如何避免它?
千恩萬謝,
您必須使用plsql中的'INTO'子句來存儲提取的值,通過選擇 – Aramillo 2015-02-11 14:25:16
'PL/SQL'不是一種腳本語言,它與'SQL'不同。當你在'PL/SQL'中運行一個查詢時,你不能指望它像這樣在你的控制檯中打印結果。與JDBC一樣,您必須將這些數據提供給「PL/SQL」變量,然後使用「DBMS_OUTPUT」包打印它。當你在沒有SELECT的情況下運行PL/SQL時,它的工作原理是,它沒有嵌入任何SQL。另外,當你單獨運行一個SQL時,你的IDE不會像PL/SQL那樣執行它,一個'SQL'只。最後,您試圖合併它們,現在PL/SQL中的SQL必須像我之前提到的那樣處理。 – 2015-02-11 14:37:59
還值得注意的是,PL/SQL錯誤的行號(本例中爲PLS-00428)是指內部的行PL/SQL代碼,而不是整個腳本,因爲您可能習慣在工作表中運行普通SQL。所以從'BEGIN'塊的開始處開始,第4行是'select',而不是'dbms_output'。至少在標題中似乎讓你感到困惑。 (在觸發器創建語句中它更令人困惑)。 – 2015-02-11 14:58:12