資源描述:
《oracle_plsql存儲(chǔ)過程教程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、(1)SEQNAME.NEXTVAL里面的值如何讀出來?可以直接在insertintotestvalues(SEQNAME.NEXTVAL)是可以用這樣: SELECTtmp#_seq.NEXTVAL INTOid_temp FROMDUAL;然后可以用id_temp (2)PLS-00103:出現(xiàn)符號(hào)">"在需要下列之一時(shí): 代碼如下: IF(sum>0) THEN begin INSERTINTOemesp.tp_sn_production_log VALUES(r_serial_number,,id_temp
2、); EXIT; end; 一直報(bào)sum>0這是個(gè)很郁悶的問題因?yàn)樽兞坑昧藄um所以不行,后改為i_sum>0 (3)oracle語(yǔ)法 1.Oracle應(yīng)用編輯方法概覽 答:1)Pro*C/C++/...:C語(yǔ)言和數(shù)據(jù)庫(kù)打交道的方法,比OCI更常用; 2)ODBC 3)OCI:C語(yǔ)言和數(shù)據(jù)庫(kù)打交道的方法,和ProC很相似,更底層,很少用; 4)SQLJ:很新的一種用Java訪問Oracle數(shù)據(jù)庫(kù)的方法,會(huì)的人不多; 5)JDBC 6)PL/SQL:存儲(chǔ)在數(shù)據(jù)內(nèi)運(yùn)行,其他方法為在數(shù)據(jù)庫(kù)外對(duì)數(shù)據(jù)庫(kù)訪問; 2.PL/
3、SQL 答:1)PL/SQL(Proceduallanguage/SQL)是在標(biāo)準(zhǔn)SQL的基礎(chǔ)上增加了過程化處理的語(yǔ)言; 2)Oracle客戶端工具訪問Oracle服務(wù)器的操作語(yǔ)言; 3)Oracle對(duì)SQL的擴(kuò)充; 4.PL/SQL的優(yōu)缺點(diǎn) 答:優(yōu)點(diǎn): 1)結(jié)構(gòu)化模塊化編程,不是面向?qū)ο? 2)良好的可移植性(不管Oracle運(yùn)行在何種操作系統(tǒng)); 3)良好的可維護(hù)性(編譯通過后存儲(chǔ)在數(shù)據(jù)庫(kù)里); 4)提升系統(tǒng)性能; 第二章 PL/SQL程序結(jié)構(gòu) 1.PL/SQL塊 答:1)申明部分,DECLARE(不可少
4、); 2)執(zhí)行部分,BEGIN...END; 3)異常處理,EXCEPTION(可以沒有); 2.PL/SQL開發(fā)環(huán)境 答:可以運(yùn)用任何純文本的編輯器編輯,例如:VI;toad很好用 3.PL/SQL字符集 答:PL/SQL對(duì)大小寫不敏感 4.標(biāo)識(shí)符命名規(guī)則 答:1)字母開頭; 2)后跟任意的非空格字符、數(shù)字、貨幣符號(hào)、下劃線、或#; 3)最大長(zhǎng)度為30個(gè)字符(八個(gè)字符左右最合適); 5.變量聲明 答:語(yǔ)法 Var_nametype[CONSTANT][NOTNULL][:=value]; 注:1)申明時(shí)可
5、以有默認(rèn)值也可以沒有; 2)如有[CONSTANT][NOTNULL],變量一定要有一個(gè)初始值; 3)賦值語(yǔ)句為“:=”; 4)變量可以認(rèn)為是數(shù)據(jù)庫(kù)里一個(gè)字段; 5)規(guī)定沒有初始化的變量為NULL; 第三章 1.數(shù)據(jù)類型 答:1)標(biāo)量型:數(shù)字型、字符型、布爾型、日期型; 2)組合型:RECORD(常用)、TABLE(常用)、VARRAY(較少用) 3)參考型:REFCURSOR(游標(biāo))、REFobject_type 4)LOB(LargeObject) 2.%TYPE 答:變量具有與數(shù)據(jù)庫(kù)的表中某一字段相同的類
6、型 例:v_FirstNamestudengts.first_name%TYPE; 3.RECORD類型 答:TYPErecord_nameISRECORD(/*其中TYPE,IS,RECORD為關(guān)鍵字,record_name為變量名稱*/ field1type[NOTNULL][:=expr1],/*每個(gè)等價(jià)的成員間用逗號(hào)分隔*/ field2type[NOTNULL][:=expr2],/*如果一個(gè)字段限定NOTNULL,那么它必須擁有一個(gè)初始值*/ .../*所有沒有初始化的字段都會(huì)初始為NULL fieldnty
7、pe[NOTNULL][:=exprn]); 4.%ROWTYPE 答:返回一個(gè)基于數(shù)據(jù)庫(kù)定義的類型 DECLARE v_StuRecStudent%ROWTYPE;/*Student為表的名字*/ 注:與3中定一個(gè)record相比,一步就完成,而3中定義分二步:a.所有的成員變量都要申明;b.實(shí)例化變量; 5.TABLE類型 答:TYPEtabletypeISTABLEOFtypeINDEXBYBINARY_INTEGER; 例:DECLARE TYPEt_StuTableISTABLEOFStudent%ROWT
8、YPEINDEXBYBINARY_INTERGER; v_Studentt_StuTable; BEGIN SELECT*INTOv_Student(100)FROMStudentWHEREid=1001; EN