第一次用oracle寫存儲過程涕俗,簡單記錄下。
工具:plsql神帅。
1再姑、先用plsql連上數(shù)據(jù)庫。
2找御、點擊? 文件->新建->SQL窗口
3元镀、在新建的窗口里寫語句绍填,定義一個新的簡單的存儲過程
簡單說明:
1) create or replace? procedure 是固定寫法,后面? procedure_test是這個存儲過程的名稱栖疑,你可以按照你自己的實際需要寫成別的(例如 aaa讨永,save_date或者其他);
2)然后后面這個 is 也是必須寫的遇革,不然編譯的時候不會報錯卿闹,但是執(zhí)行的時候也會報錯。
3)is之后是定義的變量萝快。就是begin后面需要用到的變量比原,需要在這里提前定義出來,不然存儲過程編譯的時候就會報錯了
4)begin杠巡,也是個關鍵字量窘,必須寫,不然編譯不報錯氢拥,后面的執(zhí)行也會報錯蚌铜。最后的end也是如此
5)begin里面的,第一行? testNum:= 1嫩海,這句是為了給testNum賦值冬殃。是的,存儲過程里給變量賦值叁怪,需要用:=审葬,而不是只用=。后面同理給testText賦值
6)dbms_output.put_line奕谭,這個是存儲過程的輸出語句涣觉。類似java的System.out.printLn();。
7)寫完這些語句之后我們點下執(zhí)行血柳,如果沒有報錯官册,就是編程成功了。編譯成功之后难捌,會在左側(cè)的procedures文件夾里出現(xiàn)剛才我們寫的這個存儲過程的名字膝宁。如下圖
8)然后我們在這個存儲過程上郵件,選擇 測試? 選項
之后會彈出測試頁面
9)測試和執(zhí)行存儲過程
然后我們執(zhí)行一下這個存儲過程
如果沒有報錯员淫,就是執(zhí)行成功了』鞯校可以看下這個存儲過程的輸出介返,在 DBMS輸出 這個tab頁面里
4、上面是一個超級簡單的存儲過程的創(chuàng)建到執(zhí)行到看輸出的過程愚争,接下來說下如何在這個存儲過程里使用循環(huán)
1)前提是對sql查詢結果的循環(huán)映皆,然后使用游標挤聘。在上面例子的基礎上寫
2)需要在? is 之后轰枝,begin 之前捅彻,定義這個新的游標。 cursor cur is 后面寫查詢的sql語句
3)在begin之后鞍陨,用 fro temp in cur loop 步淹,來開啟循環(huán),這個句子里诚撵,只有temp是變量缭裆,可以換成其他的名字,其他都是固定的寿烟,然后接下來寫需要實現(xiàn)的邏輯
4)再接下來澈驼,end loop,表示結束循環(huán)筛武。
5)寫完之后編譯缝其,然后再按著之前的執(zhí)行,可以看到DBMS輸出