首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 建立預存程序常見錯誤與正確範例

     編輯:Oracle 資料庫基礎

在 Oracle 中建立預存程序時,初學者常因語法細節導致編譯錯誤。本文透過實際錯誤案例,說明 SELECT INTO 必要性、DBMS_OUTPUT 拼寫陷阱,並提供完整可執行的正確範本。

常見錯誤案例分析

1. 缺少 INTO 子句

CREATE OR REPLACE PROCEDURE get_news AS
BEGIN
    SELECT * FROM cf_news;  -- 錯誤:PL/SQL 要求 SELECT 必須有 INTO
END;

錯誤訊息:PLS-00428: 此 SELECT 語句中缺少 INTO 子句

2. 保留字拼寫錯誤

BEGIN
    dbms_outpub.put_line('aa=' || aa);  -- 錯誤:套件名拼寫錯誤
END;

錯誤訊息:PLS-00201: 必須宣告識別符 'DBMS_OUTPUB.PUT_LINE'

3. 程序主體為空或結構不完整

如 BEGIN 後直接 END、參數宣告與主體不匹配等,皆會觸發「警告: 程序建立時帶有編譯錯誤」。

正確建立步驟範例

CREATE OR REPLACE PROCEDURE get_news AS
    v_count NUMBER;
BEGIN
    SELECT COUNT(*) INTO v_count FROM cf_news;
    DBMS_OUTPUT.PUT_LINE('count=' || v_count);
END;
/
SHOW ERRORS;

執行與除錯技巧

  1. 建立後務必執行 SHOW ERRORS; 檢視詳細行號與錯誤代碼。
  2. 啟用輸出:SET SERVEROUTPUT ON;
  3. 呼叫測試:EXECUTE get_news;

關鍵提醒

  • PL/SQL 中的 SELECT 必須搭配 INTO 將結果存入變數。
  • 系統套件名稱區分大小寫且拼寫需精確(DBMS_OUTPUT 非 OUTPUB)。
  • 變數需在 AS/IS 與 BEGIN 之間宣告。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved