以下的文章主要是介紹開發Oracle存儲過程中的一些步驟的介紹,其中包括如何運行一個存儲過程 ,以及在運行一個存儲過程的相關代碼的介紹,以下是文章的具體介紹,望你浏覽完以下的內容會有所收獲。
運行一個存儲過程
從SQL*Plus 命令行提示符運行你的存儲過程使用EXECUTE命令,如下:
- SQL> EXECUTE skeleton;
SQL*Plus 輸出一下信息確信存儲過程成功執行: PL/SQL procedure successfully completed.
你也可以在一個無名PL/SQL塊內運行你的存儲過程,在SQL*Plus命令提示符下,它看起來像:
- SQL> BEGIN
- 2 SKELETON;
- 3 END;
- 4 /
現在我們已經運行了我們的Oracle存儲過程,我們如何修改它呢?
修改一個存儲過程
讓我們寫一個輸出字符串“Hello World!”的存儲過程,用Notepad打開你的skeleton.sql 文件,. 用DBMS_OUTPUT.PUT_LINE 過程調用去替換NULL語句,如下所示:
- CREATE OR REPLACE PROCEDURE skeleton
- IS
- BEGIN
- DBMS_OUTPUT.PUT_LINE('Hello World!');
- END;
保存到文件skeleton.sql.
從SQL*Plus命令行, 打開文件skeleton.sql .
- SQL> @skeleton
- SQL>
- CREATE OR REPLACE PROCEDURE skeleton
- IS
- BEGIN
- DBMS_OUTPUT.PUT_LINE('Hello World!');
- END;
- SQL> /
SQL*Plus 通知你存儲過程成功創建並輸出提示信息:Procedure created.
SQL>
用EXECUTE 命令運行你的存儲過程:
- SQL> EXECUTE skeleton;
SQL*Plus顯示Oracle存儲過程運行成功:
- PL/SQL procedure successfully completed.
我們想要的輸出字符串 "Hello World!"沒有出來,在顯示一個DBMS_OUTPUT.PUT_LINE 結果前需要運行一個SET命令,在SQL*Plus 命令行提示符,鍵入:
- SQL> SET SERVEROUTPUT ON
再次執行你的存儲過程:
- SQL> EXECUTE skeleton;
現在結果輸出了:Hello World!
SQL> EXECUTE skeleton;
- SQL> EXECUTE skeleton;
調試一個存儲過程
當調試一個存儲過程時,遵循一樣的步驟,修改SQL文件,創建存儲過程,執行存儲過程,根據編譯器反饋的出錯信息進行修改,這一步是非常繁瑣的,需要依靠經驗。
在實際的商用存儲過程的開發調試過程中,由於涉及很多表、類型、光標、循環、條件等復雜的邏輯,和PL/SQL語句的靈活運用,編譯時會產生很多錯誤提示信息,程序員在根據這些錯誤信息定位,進行修正,再編譯最後得到正確的結構;
放棄一個存儲過程
如果在數據庫中你不在需要一個Oracle存儲過程你可以刪除它,SQL語句 DROP PROCEDURE 完成從數據庫中刪除一個存儲過程,DROP PROCEDURE 在SQL中被歸類為數據定義語言(DDL) 類操作,其他的例子有CREATE, ALTER, RENAME 和TRUNCATE。.
在SQL*Plus 命令提示符下,使用DROP PROCEDURE SQL 語句刪除你的叫做skeleton的存儲過程:
- SQL> DROP PROCEDURE skeleton;
- SQL*Plus assures us the procedure has been removed:
- Procedure dropped.
總結
本文詳細討論了如何使用Oracle工具開發Oracle商用Oracle存儲過程的步驟。最後在存儲過程的使用中可能是程序直接調用,也可能被觸發器調用。