資源描述:
《Oracle存儲(chǔ)過(guò)程學(xué)習(xí).doc》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、Oracle存儲(chǔ)過(guò)程學(xué)習(xí) 大家都知道存儲(chǔ)過(guò)程的開(kāi)頭語(yǔ)句是CREATEORREPLACEPROCEDURE(VARintype,VARouttype,.....)AS
2、IS但從變量申明開(kāi)始變量類(lèi)型有哪些?BEGIN后邏輯語(yǔ)句有哪些,我就記不清楚了。這里先給個(gè)簡(jiǎn)單的栗子123456789101112CREATE?OR?REPLACE?PROCEDURE?OUTPUTINFO?AS??I?NUMBER(10);?--在這里申明變量IBEGIN??I?:=?0;?--申明變量I的值為0??WHILE?I?<=?1
3、0?LOOP????--這里使用了WHILE循環(huán)?????BEGIN??????I?:=?I?+?1;????END;????DBMS_OUTPUT.PUT_LINE(I);?--發(fā)現(xiàn)該句放在BEGIN,END結(jié)構(gòu)內(nèi)外,結(jié)果一樣???END?LOOP;END?OUTPUTINFO;1234567891011121314SQL>?SET?SERVEROUTPUT?ONSQL>?EXEC?OUTPUTINFO;1234567891011PL/SQL?PROCEDURE?SUCCESSFULLY?COMPLETE
4、D.?今天嘗試?yán)^續(xù)寫(xiě),發(fā)現(xiàn)當(dāng)表名是變量時(shí)是過(guò)程是無(wú)法編譯成功的。經(jīng)過(guò)網(wǎng)上的查找和反復(fù)的測(cè)試才寫(xiě)成這么簡(jiǎn)單的一句1234CREATE?OR?REPLACE?PROCEDURE?TBS?AS??TB????VARCHAR2(15);??TBN???NUMBER(10)?DEFAULT?1;??V_SQL?VARCHAR2(2000);江蘇萬(wàn)和計(jì)算機(jī)培訓(xùn)中心地址:南京市中山北路26號(hào)新晨國(guó)際大廈24層(地鐵鼓樓站4A出口)官方網(wǎng)站:http://www.wanho.net567891011121314151617
5、1819??CNT???NUMBER(10);??TBD???DATE;BEGIN??TBD?:=?TO_DATE('2013/12/31?23:59:59',?'YYYY/MM/DD?HH24:MI:SS');??WHILE?(TBN?<=?11)?LOOP????TB????:=?'TBILLLOG'?
6、
7、?TBN;????TBN???:=?TBN?+?1;????V_SQL?:=?'SELECT?COUNT(*)?FROM?'?
8、
9、?TB;????EXECUTE?IMMEDIATE?V_SQL????
10、??INTO?CNT;????IF?CNT?>?1?THEN??????DBMS_OUTPUT.PUT_LINE(TBD?
11、
12、?'?'?
13、
14、?TBN?
15、
16、?'?'?
17、
18、?CNT);????END?IF;??END?LOOP;END;今天寫(xiě)作業(yè),一個(gè)簡(jiǎn)單的過(guò)程,犯了個(gè)簡(jiǎn)單的邏輯錯(cuò)誤,輸出的時(shí)候使用的變量是V_SQL,導(dǎo)致結(jié)果總是SELECT語(yǔ)句而非語(yǔ)句執(zhí)行的結(jié)果。123456789CREATE?OR?REPLACE?PROCEDURE?MALE_AVG_SALARY?AS??V_SQL???VARCHAR2(
19、2000);??RESULTS?NUMBER(10);BEGIN??V_SQL?:=?'SELECT?AVG(SALARY)?FROM?EMPLOYEES?WHERE?EMPLOYEESEX='?
20、
21、???????????'''M'''?
22、
23、?'?GROUP?BY?EMPLOYEESEX';??EXECUTE?IMMEDIATE?V_SQL;??DBMS_OUTPUT.PUT_LINE(V_SQL);END;今天的作業(yè)繼續(xù)頭大,不過(guò)參考了業(yè)務(wù)庫(kù)上的過(guò)程,對(duì)過(guò)程調(diào)用有了進(jìn)一步的認(rèn)識(shí):1234567891011
24、12顯示的開(kāi)啟游標(biāo)CREATE?OR?REPLACE?PROCEDURE?EMPLOYEE_SALARY(GENTEE?IN?VARCHAR2)?AS??CURSOR?CUR?IS????SELECT?FIRST_NAME?
25、
26、?LAST_NAME?EMPLOYEE_NAME,?SALARY??????FROM?EMPLOYEES?????WHERE?EMPLOYEESEX?=?GENTEE;??R?EMPLOYEES?%?ROWTYPE;BEGIN??FOR?R?IN?CUR?LOOP????BEGIN?
27、?????DBMS_OUTPUT.PUT_LINE('EMPLOYEE_NAME:?'?
28、
29、?R.EMPLOYEE_NAME?
30、
31、???????????????????????????'?EMPLOYEE_SALARY:?'?
32、
33、?R.SALARY);????END;??END?LOOP;END?EMPLOYEE_SALARY;江蘇萬(wàn)和計(jì)算機(jī)培訓(xùn)中心地址:南京市中山北路26號(hào)新晨國(guó)際大廈24層(地鐵鼓樓站4A出口