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