儲存過程的編寫和呼叫

2022-12-19 18:12:05 字數 2812 閱讀 1225

一.概述

oracle儲存過程開發的要點是:

使用notepad文字編輯器,用oracle pl/sql程式語言寫乙個儲存過程;

在oracle資料庫中建立乙個儲存過程;

在oracle資料庫中使用sql*plus工具執行儲存過程;在oracle資料庫中修改儲存過程;通過編譯錯誤除錯儲存過程;刪除儲存過程;二.環境配置包括以下內容:

乙個文字編輯器notepad;

oracle sql*plus工具,提交oracle sql和pl/sql語句到oracle database。

oracle 10g express資料庫,它是免費使用的版本;需要的技巧:

sql基礎知識,包括插入、修改、刪除等使用oracle's sql*plus工具的基本技巧;使用oracle's pl/sql程式語言的基本技巧;三.寫乙個儲存過程

儲存過程使用oracle's pl/sql程式語言編寫,讓我們寫乙個什

麼工作都不做的儲存過程,我們可以編譯和執行它而不用擔心會對資料庫產生任何損害。在notepad,寫下:

create or replace procedure skeletonisbeginnull;end;

把檔案存為

讓我們一行行遍歷這個儲存過程:

1 create or replace procedure skeleton2 is3 begin4 null;5 end;行1:

create or replace procedure是乙個sql語句通知oracle資料庫去建立乙個叫做skeleton儲存過程,如果存在就覆蓋它;行2:

is關鍵詞表明後面將跟隨乙個pl/sql體。行3:

begin關鍵詞表明pl/sql體的開始。行4:

null pl/sql語句表明什麼事都不做,這句不能刪去,因為pl/sql體中至少需要有一句;行5:

end關鍵詞表明pl/sql體的結束四.建立乙個儲存過程

sql語句create or replace procedure在oracle資料庫中建立、編譯和儲存乙個儲存過程。

從window開啟sql*plus並且從sql*plus登入到你的資料庫;開啟檔案.

在sql>命令提示符下輸入以下命令:sql>@skeletonsql>/

sql*plus裝載檔案的內容到sql*plus緩衝區並且執行sql*plus語句;sql*plus會通知你儲存過程已經被成功地建立。

現在你的儲存過程被建立,編譯和儲存在你的oracle資料庫,我們可以執行它。五.執行乙個儲存過程

從sql*plus命令列提示符執行你的儲存過程使用execute命

令,如下:

sql> execute skeleton;

sql*plus輸出一下資訊確信儲存過程成功執行: pl/sqlprocedure successfully completed.

你也可以在乙個無名pl/sql塊內執行你的儲存過程,在sql*plus命令提示符下,它看起來像:sql> begin2 skeleton;3 end;4 /

現在我們已經執行了我們的儲存過程,我們如何修改它呢?六.修改乙個儲存過程

讓我們寫乙個輸出字串「hello world!」的儲存過程,用notepad開啟你的檔案,.用dbms_過程呼叫去替換null語句,如下所示:

create or replace procedure skeletonisbegin

dbms_'hello world!');end;

儲存到檔案

從sql*plus命令列,開啟檔案 .sql> @skeletonsql>

1 create or replace procedure skeleton2 is3 begin

4 dbms_'hello world!');5* end;sql> /

sql*plus通知你儲存過程成功建立並輸出提示資訊:>

用execute命令執行你的儲存過程:sql> execute skeleton;

sql*plus顯示儲存過程執行成功:pl/sql procedure successfullycompleted.

我們想要的輸出字串"hello world!"沒有出來,在顯示乙個dbms_結果前需要執行乙個set命令,在sql*plus命令列提示符,鍵入:sql> set serveroutput on再次執行你的儲存過程:

sql> execute skeleton;現在結果輸出了:hello world!

pl/sql procedure successfully completed.七.除錯乙個儲存過程

當除錯乙個儲存過程時,遵循一樣的步驟,修改sql檔案,建立儲存過程,執行儲存過程,根據編譯器反饋的出錯資訊進行修改,這一步是非常繁瑣的,需要依靠經驗。

在實際的商用儲存過程的開發除錯過程中,由於涉及很多表、型別、游標、迴圈、條件等複雜的邏輯,和pl/sql語句的靈活運用,編譯時會產生很多錯誤提示資訊,程式設計師在根據這些錯誤資訊定位,進行修正,再編譯最後得到正確的結構;八.放棄乙個儲存過程

如果在資料庫中你不在需要乙個儲存過程你可以刪除它,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商用儲存過程的步驟。最後在儲存過程的使用中可能是程式直接呼叫,也可能被觸發器呼叫。

mysql函式與儲存過程編寫範例

範例一 需求 向表t1插入一百萬條資料 drop procedure p16 delimiter 宣告分隔符,mysql預設的分隔符是分號。create procedure p16 begin declare v int set v 1 loop lable loop insert into t1 ...

試樣的採取和儲存

1 固體原料 1.1 取樣工具 1.1.1 取樣器 用不鏽鋼管制,長度600 50mm,內徑15 2mm,外徑20 2mm,不銹鋼管的一端封口,從封口端起,隔200mm開10mm寬 100mm長光滑取樣口。也可按實際情況用不鏽鋼勺代替。1.1.2 試樣瓶 1000ml玻璃磨口瓶,也可按情況用自封袋代...

大資料量下的分頁儲存過程

由於現網日誌資料庫查詢總是超時,最近試著尋找可行的解決方案,找了很多種進行改造,經過測試發現,以下儲存過程效率最好。我在本地資料庫造了乙個 25543862 條資料,每頁 10 條資料,測試前 1000 頁查詢都是幾十毫秒就可以了,翻頁到60萬頁也是2秒以內。在現網上執行了一下該儲存過程,感覺效率也...