一、概述
oracle儲存過程開發的要點是:
◆使用notepad文字編輯器,用oraclepl/sql程式語言寫乙個儲存過程;
◆在oracle資料庫中建立乙個儲存過程;
◆在oracle資料庫中使用sql*plus工具執行儲存過程;
◆在oracle資料庫中修改儲存過程;
◆通過編譯錯誤除錯儲存過程;
◆刪除儲存過程;
二.環境配置
包括以下內容:
◆乙個文字編輯器notepad;
◆oraclesql*plus工具,提交oraclesql和pl/sql語句到oracledatabase。
◆oracle10gexpress資料庫,它是免費使用的版本;
需要的技巧:
◆sql基礎知識,包括插入、修改、刪除等
◆使用oraclessql*plus工具的基本技巧;
◆使用oraclespl/sql程式語言的基本技巧;
三.寫乙個儲存過程
儲存過程使用oraclespl/sql程式語言編寫,讓我們寫乙個什麼工作都不做的儲存過程,我們可以編譯和執行它而不用擔心會對資料庫產生任何損害。
在notepad,寫下:
createorreplaceprocedureskeleton
is begin
null;
end;
把檔案存為skeleton.sql.
讓我們一行行遍歷這個儲存過程:
sql>@skeleton
sql>/
sql*plus裝載skeleton.sql檔案的內容到sql*plus緩衝區並且執行sql*plus語句;sql*plus會通知你儲存過程已經被成功地建立。
現在你的儲存過程被建立,編譯和儲存在你的oracle資料庫,我們可以執行它。
五.執行乙個儲存過程
從sql*plus命令列提示符執行你的儲存過程使用execute命令,如下:
sql>executeskeleton;
sql*plus輸出一下資訊確信儲存過程成功執行:pl/sqlproceduresuccessfullycompleted.
你也可以在乙個無名pl/sql塊內執行你的儲存過程,在sql*plus命令提示符下,它看起來像:
sql>begin
2skeleton;
3end;
4/ 現在我們已經執行了我們的儲存過程,我們如何修改它呢?
六.修改乙個儲存過程
讓我們寫乙個輸出字串「helloworld!」的儲存過程,用notepad開啟你的skeleton.sql檔案,.用dbms_output.put_line過程呼叫去替換null語句,如下所示:
createorreplaceprocedureskeleton
is begin
dbms_output.put_line(helloworld!);
end;
儲存到檔案skeleton.sql.
從sql*plus命令列,開啟檔案skeleton.sql.
sql>@skeleton
sql>
1createorreplaceprocedureskeleton
2is
3begin
4dbms_output.put_line(helloworld!);
5*end;
sql>/
sql*plus通知你儲存過程成功建立並輸出提示資訊:procedurecreated.
sql>
用execute命令執行你的儲存過程:
sql>executeskeleton;
sql*plus顯示儲存過程執行成功:pl/sqlproceduresuccessfullycompleted.
我們想要的輸出字串」helloworld!」沒有出來,在顯示乙個dbms_output.put_line結果前需要執行乙個set命令,在sql*plus命令列提示符,鍵入:
sql>setserveroutputon
再次執行你的儲存過程:
sql>executeskeleton;
現在結果輸出了:helloworld!
pl/sqlproceduresuccessfullycompleted.
七.除錯乙個儲存過程
當除錯乙個儲存過程時,遵循一樣的步驟,修改sql檔案,建立儲存過程,執行儲存過程,根據編譯器反饋的出錯資訊進行修改,這一步是非常繁瑣的,需要依靠經驗。
在實際的商用儲存過程的開發除錯過程中,由於涉及很多表、型別、游標、迴圈、條件等複雜的邏輯,和pl/sql語句的靈活運用,編譯時會產生很多錯誤提示資訊,程式設計師在根據這些錯誤資訊定位,進行修正,再編譯最後得到正確的結構;
八.放棄乙個儲存過程
如果在資料庫中你不在需要乙個儲存過程你可以刪除它,sql語句dropprocedure完成從資料庫中刪除乙個儲存過程,dropprocedure在sql中被歸類為資料定義語言(ddl)類操作,其他的例子有create,alter,rename和truncate。.
在sql*plus命令提示符下,使用dropproceduresql語句刪除你的叫做skeleton的儲存過程:
sql>dropprocedureskeleton;
sql*plusassuresustheprocedurehasbeenremoved:
proceduredropped.
總結 本文詳細討論了如何使用oracle工具開發oracle商用儲存過程的步驟。最後在儲存過程的使用中可能是程式直接呼叫,也可能被觸發器呼叫。
**
oracle儲存過程學習筆記
建乙個不帶任何引數儲存過程 輸出系統日期 create or replace procedure output date is begin dbms output.put line sysdate end output date 執行這個儲存過程 begin output date end 建一張表...
Oracle儲存過程學習筆記 一
用了兩年 oracle 還沒寫過儲存過程,真是十分慚愧,從今天開始學習 oracle 儲存過程,完全零起點,爭取每日一篇學習筆記,可能開始認識的不全面甚至有錯誤,但堅持下來一定會有收穫。1.建立乙個儲存過程 create or replace procedure firstpro isbegin d...
oracle學習筆記之儲存過程
user scott sql create table mytest name varchar2 30 password varchar2 30 table created sql create or replace procedure pro sp1 is 建立乙個簡單的儲存過程 2 begin ...