PL/SQL Developer 是 Oracle 開發最常用的 IDE,掌握其建立、編譯、除錯、測試預存程序的完整流程,能大幅提升開發效率。本文以實際操作步驟與代碼範例,涵蓋建表、建立預存程序(含 REF CURSOR 輸出)、刪除程序、Test Window 執行、Variable 面板綁定游標、右鍵測試功能,以及 DML 類程序的參數傳遞與執行。
CREATE TABLE A (
USERID NUMBER(38),
PWD VARCHAR2(30)
) TABLESPACE USERS
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
CREATE OR REPLACE PROCEDURE up_sel (
cur_test OUT SYS_REFCURSOR
) IS
BEGIN
OPEN cur_test FOR SELECT * FROM A;
END;
/
BEGIN
up_sel(cur_test => :cur_test);
END;
cur_test,雙擊或點擊右側 ... 圖示即可檢視游標結果集UP_SEL 程序DROP PROCEDURE up_sel;
CREATE OR REPLACE PROCEDURE up_del (
userid IN VARCHAR2
) IS
BEGIN
DELETE FROM A WHERE USERID = userid;
END;
/
測試:在 Test Window 或右鍵 Test 介面的 Value 欄位填入要刪除的 USERID 值執行。
CREATE OR REPLACE PROCEDURE up_add (
userid IN VARCHAR2,
pwd IN VARCHAR2
) IS
BEGIN
INSERT INTO A (USERID, PWD) VALUES (userid, pwd);
COMMIT; -- 記得提交
END;
/
DECLARE
BEGIN
up_add('11', '222');
END;
/
SYS_REFCURSOR 是弱型別,通用性強;複雜系統建議在 Package 定義強型別 TYPE t_cur IS REF CURSOR RETURN table%ROWTYPE; 提供編譯期檢查。IN(預設,唯讀)、OUT(回傳值,初始為 NULL)、IN OUT(傳入並回傳)。EXCEPTION WHEN OTHERS THEN ... 記錄錯誤日誌並視需求 RAISE 或回滾。COMMIT;複雜業務邏輯建議由呼叫端控制交易邊界。DBMS_OUTPUT.PUT_LINE 列印關鍵變數,或啟用 PL/SQL Developer 的 Debug 模式(需編譯加入 Debug Information)。從建表、建立程序、Test Window 綁定游標變數、右鍵快速測試,到 DML 程序的參數傳遞與匿名區塊執行,本文涵蓋了 PL/SQL Developer 開發預存程序的完整生命週期操作。熟練這些技能,讓你專注於業務邏輯實現而非工具操作。