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

PL/SQL Developer 中創建、調試與調用 Oracle 存儲過程全流程指南

     編輯:Oracle 資料庫基礎

1. 建表腳本

CREATE TABLE A (
  USERID NUMBER(38),
  PWD    VARCHAR2(30)
) TABLESPACE USERS
PCTFREE 10 INITRANS 1 MAXTRANS 255
STORAGE (INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED);

2. 創建存儲過程(PL/SQL Developer 操作)

  1. 菜單 File → New → Test Window(或 Program Window)。
  2. 編寫代碼,按 F8 或工具欄「Compile」編譯。

2.1 查詢過程(返回 REF CURSOR)

CREATE OR REPLACE PROCEDURE up_sel (cur_test OUT SYS_REFCURSOR) IS
BEGIN
  OPEN cur_test FOR SELECT * FROM a;
END up_sel;
/

2.2 刪除過程

CREATE OR REPLACE PROCEDURE up_del (userid IN VARCHAR2) IS
BEGIN
  DELETE FROM a WHERE USERID = userid;
END up_del;
/

2.3 新增過程

CREATE OR REPLACE PROCEDURE up_add (
  userid IN VARCHAR2,
  pwd    IN VARCHAR2
) IS
BEGIN
  INSERT INTO a (USERID, PWD) VALUES (userid, pwd);
  COMMIT;
END up_add;
/

3. 在 PL/SQL Developer 中測試調用

方法一:Test Window 手動調用

BEGIN
  up_sel(cur_test => :cur_test);
END;
  • 變量面板:Name 填 cur_test,Type 選 Cursor,點擊 Value 欄「...」按鈕查看結果集。

方法二:右鍵存儲過程 → Test

  • 對象瀏覽器找到 UP_SEL,右鍵 Test,彈出參數輸入框,輸入後直接查看結果網格。

方法三:匿名塊調用 DML 過程

DECLARE
BEGIN
  up_add('11', '222');
END;

4. 刪除存儲過程

DROP PROCEDURE up_sel;

5. 進階提示

  • SYS_REFCURSOR:9i+ 內置弱類型游標,無需自定義 TYPE,跨版本兼容。
  • COMMIT 策略:DML 過程建議由調用方控制事務(移除內部 COMMIT),實現業務邏輯原子性。
  • 異常處理:生產代碼必須添加 EXCEPTION WHEN OTHERS THEN ... RAISE; 記錄日志並拋出。
  • 調試技巧:PL/SQL Developer 設置斷點(行號左側雙擊),以 Debug 模式運行 Test Window,支持單步、變量監視、調用堆疊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved