oracle講解_存儲過程的調用

oracle講解_存儲過程的調用

ID:42550585

大?。?7.97 KB

頁數(shù):5頁

時間:2019-09-17

oracle講解_存儲過程的調用_第1頁
oracle講解_存儲過程的調用_第2頁
oracle講解_存儲過程的調用_第3頁
oracle講解_存儲過程的調用_第4頁
oracle講解_存儲過程的調用_第5頁
資源描述:

《oracle講解_存儲過程的調用》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、一.存儲過程(PROCEDURE)使用過程,不僅可以簡化客戶端應用程序的開發(fā)和維護,而且可以提高應用程序的運行性能.CREATE[ORREPLACE]PROCUDUREprocedure_name(arg1[model1]datatype1,arg2[model2]datatype2)IS[AS]PL/SQLBlock;arg1,arg2用于指定過程的參數(shù),IS/AS用于開始一個PL/SQL塊.當指定參數(shù)數(shù)據(jù)類型時,不能指定其長度.在建立過程的時間,既可以指定輸入?yún)?shù)(IN),也可以指定輸出參數(shù)(OUT)以及輸入輸出參數(shù)(INOUT).

2、如果不定義參數(shù)模式,則默認為輸入?yún)?shù),如果要定義輸出參數(shù),則需要指定OUT關鍵字,如果定義輸入輸出參數(shù),要指定INOUT關鍵字.一般使用execute(或exec)過程名或者call過程名來調用過程.setserveroutputon打開oracle的輸出.(1)不帶參數(shù)的過程CREATEORREPLACEPROCEDUREout_timeISBEGINdbms_output.put_line(systimestamp);END;callout_time();或者execout_time;(2)帶IN參數(shù)的過程如果不指定參數(shù)模式,則默認

3、的為IN,也可以顯示的指定輸入模式IN.CREATEORREPLACEPROCEDUREadd_employee(enoNUMBER,nameVARCHAR2,salNUMBER,jobVARCHAR2DEFAULT'CCC',dnoNUMBER)ISBEGININSERTINTOemp(empno,ename,sal,job,deptno)VALUES(eno,ename,sal,job,dno);EXCEPTIONWHENDUP_VAL_ON_INDEXTHENRAISE_APPLICATION_ERROR(-20000,'雇員不能

4、重復');END;除了默認值的參數(shù)外,其余的都要輸入.(3)帶OUT的過程在過程中輸出結果是使用OUT或者INOUT來完成的.定義輸出參數(shù)的時間,必須要使用OUT來定義輸出.CREATEORREPLACEPROCEDUREquery_employee(enoNUMBER,nameOUTVARCHAR2,salOUTNUMBER)ISBEGINSELECTename,salINTOname,salFROMempWHEREempno=eno;EXCEPTIONWHENNO_DATA_FOUNDTHENRAISE_APPLICATION_ER

5、ROR(-20000,'雇員不存在');END;對于指定為OUT類型的參數(shù),必須定義變量接收輸出參數(shù)的數(shù)據(jù).調用實例:SQL>varnameVARCHAR2(10)SQL>varsalNUMBERSQL>execquery_employee(77,:name,:sal)SQL>printnamesal(4)帶IN和OUT的過程在調用前要通過變量給參數(shù)傳遞數(shù)據(jù),在調用結束后,會通過此變量將值傳遞給應用程序CREATEORPROCEDUREcompute(numINOUTNUMBER,num2INOUTNUMBER)ISv1NUMBER;v

6、2NUMBER;BEGINv1:=num1/num2;v2:=MOD(num1,num2);num1:=v1;num2:=v2;END;在應用程序調用INOUT的存儲過程時,必須提供兩個變量臨時存放數(shù)值,運行如下:SQL>varn1NUMBERSQL>varn2NUMBERSQL>exec:n1:=100SQL>exec:n2:=30SQL>execcompute(:n1,:n2)SQL>PRINTn1n2(5)為參數(shù)傳遞變量和數(shù)據(jù)[1]位置傳遞如SQL>execadd_dept(50,'SALES','NEWYORK')[2]名稱傳遞

7、,使用=>符號來指定值如SQL>execadd_dept(dno=>50)[3]組合傳遞,以上兩種傳遞方法交替(6)查看過程的源代碼過程名,源代碼,執(zhí)行代碼放到了數(shù)據(jù)字典中,通過查詢數(shù)據(jù)字典USER_SOURCE,可以顯示當前用戶定義的過程SELECTtextFROMuser_sourceWHEREname='ADD_DEPT';(7)刪除過程DROPPROCEDURE過程名二.函數(shù)(FUNCTION)CREATE[ORREPLACE]FUNCTIONfunction_name(arg1[model1]datatype1,arg2[mo

8、del2]datatype2)RETURNdatatypeIS

9、ASPL/SQLBlock;arg1,arg2指定函數(shù)的參數(shù),當不指定參數(shù)數(shù)據(jù)類型時,不能指定其長度RETURN指定函數(shù)返回的數(shù)據(jù)類型.注意,

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。