資源描述:
《oracle存儲過程函數(shù)語法大全詳解.pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Oracle存儲過程總結(jié)1、創(chuàng)建存儲過程createorreplaceproceduretest(var_name_1intype,var_name_2outtype)as--聲明變量(變量名變量類型)begin--存儲過程的執(zhí)行體endtest;打印出輸入的時間信息E.g:createorreplaceproceduretest(workDateinDate)isbegindbms_output.putline(Theinputdateis:
2、
3、to_date(workDate,yyyy-mm-dd));endtest;2、變量賦值變量
4、名:=值;E.g:createorreplaceproceduretest(workDateinDate)isxnumber(4,2);beginx:=1;endtest;3、判斷語句:if比較式thenbeginend;endif;E.gcreateorreplaceproceduretest(xinnumber)isbeginifx>0thenbeginx:=0-x;end;endif;ifx=0thenbeginx:=1;end;endif;endtest;4、For循環(huán)For...in...LOOP--執(zhí)行語句endLOOP;(1
5、)循環(huán)遍歷游標(biāo)createorreplaceproceduretest()asCursorcursorisselectnamefromstudent;namevarchar(20);beginfornameincursorLOOPbegindbms_output.putline(name);end;endLOOP;endtest;(2)循環(huán)遍歷數(shù)組createorreplaceproceduretest(varArrayinmyPackage.TestArray)as--(輸入?yún)?shù)varArray是自定義的數(shù)組類型,定義方式見標(biāo)題6)in
6、umber;begini:=1;--存儲過程數(shù)組是起始位置是從1開始的,與java、C、C++等語言不同。因為在Oracle中本是沒有數(shù)組的概念的,數(shù)組其實就是一張--表(Table),每個數(shù)組元素就是表中的一個記錄,所以遍歷數(shù)組時就相當(dāng)于從表中的第一條記錄開始遍歷foriin1..varArray.countLOOPdbms_output.putline(TheNo.
7、
8、i
9、
10、recordinvarArrayis:
11、
12、varArray(i));endLOOP;endtest;5、While循環(huán)while條件語句LOOPbeginend;
13、endLOOP;E.gcreateorreplaceproceduretest(iinnumber)asbeginwhilei<10LOOPbegini:=i+1;end;endLOOP;endtest;6、數(shù)組首先明確一個概念:Oracle中本是沒有數(shù)組的概念的,數(shù)組其實就是一張表(Table),每個數(shù)組元素就是表中的一個記錄。使用數(shù)組時,用戶可以使用Oracle已經(jīng)定義好的數(shù)組類型,或可根據(jù)自己的需要定義數(shù)組類型。(1)使用Oracle自帶的數(shù)組類型xarray;--使用時需要需要進行初始化e.g:createorreplacepro
14、ceduretest(youtarray)isxarray;beginx:=newarray();y:=x;endtest;(2)自定義的數(shù)組類型(自定義數(shù)據(jù)類型時,建議通過創(chuàng)建Package的方式實現(xiàn),以便于管理)E.g(自定義使用參見標(biāo)題4.2)createorreplacepackagemyPackageis--Publictypedeclarationstypeinfoisrecord(namevarchar(20),ynumber);typeTestArrayistableofinfoindexbybinary_integer;
15、--此處聲明了一個TestArray的類型數(shù)據(jù),其實其為一張存儲Info數(shù)據(jù)類型的Table而已,及TestArray就是一張表,有兩個字段,一個是name,一個是y。需要注意的是此處使用了Indexbybinary_integer編制該Table的索引項,也可以不寫,直接寫成:typeTestArrayistableofinfo,如果不寫的話使用數(shù)組時就需要進行初始化:varArraymyPackage.TestArray;varArray:=newmyPackage.TestArray();endTestArray;7.游標(biāo)的使用Or
16、acle中Cursor是非常有用的,用于遍歷臨時表中的查詢結(jié)果。其相關(guān)方法和屬性也很多,現(xiàn)僅就常用的用法做一二介紹:(1)Cursor型游標(biāo)(不能用于參數(shù)傳遞)createorreplacep