標籤:style blog http io ar os 使用 sp for
http://blog.bossma.cn/database/some-oracle-storing-process/幾個常用的Oracle預存程序
發布時間:2008年1月6日 / 分類:DataBase / 7,268 次瀏覽 / 評論
初學Oracle,瞭解了一下Oracle的預存程序,運行了幾個例子,做個備忘,方便以後使用:
1、插入資料:
向一張表裡插入若干條資料
| 0123456789101112131415161718192021222324252627282930313233 |
/*建立表tb1包含兩個欄位col1、col2*/create table tb1(col1 char(20),col2 char(20)); /*插入資料的預存程序*/CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST(ST_NUM IN NUMBER,/*起始數值*/ED_NUM IN NUMBER/*結束數值*/)ISBEGINdeclare i number;begin/*迴圈插入*/FOR i IN ST_NUM..ED_NUM LOOPINSERT INTO tb1 values(i,‘test‘);END LOOP;end;commit;/*異常處理*/EXCEPTIONWHEN OTHERS THENrollback;END; /*在CommondLine下執行*/exec INSERTAMOUNTTEST(1,2000); |
2、更新資料
| 0123456789101112131415 |
CREATE OR REPLACE PROCEDURE UPDATEAMOUNTTEST(WHERE_NUM IN VARCHAR2/*SQL語句條件值*/)ISBEGINUPDATE tb1 SET col2=‘test2‘ where col1 like WHERE_NUM||‘%‘;/*異常處理*/EXCEPTIONWHEN OTHERS THENrollback;END; /*在CommondLine下執行*/exec UPDATEAMOUNTTEST(‘11‘); |
3、預存程序之間的調用
以一個查詢更新為例子
C#
| 0123456789101112131415161718192021222324252627282930313233343536 |
/*查詢更新預存程序,調用更新預存程序UPDATEAMOUNTTEST2*/CREATE OR REPLACE PROCEDURE SELECTUPDATETEST(tJStr IN CHAR)is upStr CHAR(20);begin/*查詢出要更新的欄位值*/select a.col2 into upStr from tb1 a where a.col1 = tJStr;/*調用更新預存程序傳入用於更新的兩個參數*/UPDATEAMOUNTTEST2(‘11‘,upStr);end SELECTUPDATETEST; /*更新用的預存程序,被SELECTUPDATETEST調用*/CREATE OR REPLACE PROCEDURE UPDATEAMOUNTTEST2(WHERE_NUM IN VARCHAR2,/*更新條件*/SET_NAME IN VARCHAR2/*更新後的欄位值*/)ISBEGINUPDATE tb1 SET col2=SET_NAME where col1 like WHERE_NUM||‘%‘;EXCEPTIONWHEN OTHERS THENrollback;END; |
【轉】幾個常用的Oracle預存程序