資源描述:
《ORACLE存儲過程開發(fā)基礎(chǔ)語法.pdf》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、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'));en
4、dtest;2、變量賦值變量名:=值;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
5、--執(zhí)行語句endLOOP;(1)循環(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是自定
6、義的數(shù)組類型,定義方式見標(biāo)題6)inumber;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));end
13、LOOP;endtest;5、While循環(huán)while條件語句LOOPbeginend;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ù)
14、組類型xarray;--使用時需要需要進(jìn)行初始化e.g:createorreplaceproceduretest(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);
15、typeTestArrayistableofinfoindexbybinary_integer;--此處聲明了一個TestArray的類型數(shù)據(jù),其實其為一張存儲Info數(shù)據(jù)類型的Table而已,及TestArray就是一張表,有兩個字段,一個是name,一個是y。需要注意的是此處使用了Indexbybinary_integer編制該Table的索引項,也可以不寫,直接寫成:typeTestArrayistableofinfo,如果不寫的話使用數(shù)組時就需要進(jìn)行初始化:varArraymyPackage.TestArray;varArra
16、y:=newmyPackage.TestArray();endTestArray;7.游標(biāo)的使用Oracle中Cursor是非常有用的,用于遍歷臨時表中的查詢結(jié)果。其相關(guān)方法和屬性也很多,現(xiàn)僅就常用的用法做一二介紹:(1