資源描述:
《Oracle10g PL_SQL 編程講義》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、PL/SQL程序設(shè)計主要內(nèi)容:PL/SQL語言的基本特征、PL/SQL程序的結(jié)構(gòu)、PL/SQL語言的控制結(jié)構(gòu)、游標(biāo)(cursor)編程、錯誤處理、存儲過程和函數(shù)、創(chuàng)建包(Package)、觸發(fā)器(Trigger)。第一章PL/SQL語言的基本特征1.什么是PL/SQL?PL/SQL是ProcedureLanguage&StructuredQueryLanguage的縮寫。SQLSERVER:Transaction-SQL。PL/SQL可分為兩種:數(shù)據(jù)庫PL/SQL和工具PL/SQL。兩者的編程非常相似。都具有編程結(jié)構(gòu)、語法和邏輯機(jī)制。主要介紹數(shù)據(jù)庫PL/SQ
2、L內(nèi)容。工具PL/SQL用于Oracle的客戶端開發(fā)工具。工具PL/SQL另外還增加了用于支持工具(如ORACLEForms)的句法,如:在窗體上設(shè)置按鈕等。Oracle的客戶端開發(fā)工具OracleiDS(DeveloperStudio)Release2(10.2)包括的軟件:Oracle10gJDeveloper-JAVA開發(fā)工具Oracle10gFormsDeveloper-窗體開發(fā)Oracle10gDesigner-數(shù)據(jù)庫工具Oracle10gSoftwareConfigurationManager-軟件配置Oracle10gReportsDevelo
3、per-報表開發(fā)Oracle10gDiscovererAdministratorOracle10gWarehouseBuilder-數(shù)據(jù)倉庫Oracle10gBusinessIntelligenceBeans-商業(yè)智能2.PL/SQL語言的特征支持SQL語言、支持面向?qū)ο缶幊?、可移植、與Oracle集成。PL/SQL程序不區(qū)分大小寫。字符串?dāng)?shù)據(jù)區(qū)分大小寫。3.PL/SQL可用的SQL語句在PL/SQL中可以使用的SQL語句有:INSERT,UPDATE,DELETE,SELECTINTO,COMMIT,ROLLBACK,SAVEPOINT。重點(diǎn):在PL/SQ
4、L中不能有SELECT語句,只能用SELECTINTO語句。提示:在PL/SQL中只能用SQL語句中的DML部分,不能用DDL部分,如果要在PL/SQL中使用DDL(如CREATETABLE等)的話,只能以動態(tài)的方式來使用。第二章PL/SQL程序的結(jié)構(gòu)1.PL/SQL程序的塊結(jié)構(gòu)PL/SQL程序由三個部分組成,即聲明部分、執(zhí)行部分、異常處理部分。PL/SQL塊的結(jié)構(gòu)如下:[DECLARE/*聲明部分:在此聲明PL/SQL用到的變量,類型及游標(biāo),以及局部的存儲過程和函數(shù)*/]BEGIN/*執(zhí)行部分:過程及SQL語句,即程序的主要部分*/[EXCEPTION/*
5、執(zhí)行異常部分:錯誤處理*/]END;其中執(zhí)行部分是必須的。一個PL/SQL程序?qū)嵗篋ECLAREQtyonhandNUMBER(5);BEGINSELECTquantityINTOqtyonhandFROMinventoryWHEREproduct=’TENNISRACKET’;IFqtyonhand>OTHENUPDATEinventorySETquantity=quantity-1WHEREproduct=’TENNISRACKET’;INSERTINTOpurchaserecordVALUES(’Tennisracketpurchased’,SYSD
6、ATE);ELSEINSERTINTOpurchaserecordVALUES(’Outoftennisrackets’,SYSDATE);ENDIF;COMMIT;END;演示一個例子。PL/SQL塊可以分為兩類:1.未命名塊:動態(tài)構(gòu)造,只能執(zhí)行一次。2.命名塊:存儲在數(shù)據(jù)庫中的存儲過程、函數(shù)、觸發(fā)器以及包等。2.標(biāo)識符PL/SQL程序設(shè)計中的標(biāo)識符定義與SQL的標(biāo)識符定義的要求相同。要求和限制有:l標(biāo)識符名不能超過30字符;l第一個字符必須為字母;可包含字母,數(shù)字,$,_,和#;l不分大小寫;l不能包含空格、&、-、/;l不能是SQL保留字。提示:一般不
7、要把變量名聲明與表中字段名完全一樣,如果這樣可能得到不正確的結(jié)果.例如:下面的例子將會刪除所有的紀(jì)錄,而不是KING的記錄;DECLAREenamevarchar2(20):=’KING’;BEGINDELETEFROMempWHEREename=ename;END;變量命名在PL/SQL中有特別的講究,建議在系統(tǒng)的設(shè)計階段就要求所有編程人員共同遵守一定的要求,使得整個系統(tǒng)的文檔在規(guī)范上達(dá)到要求。下面是建議的命名方法:標(biāo)識符命名規(guī)則例子程序變量V_nameV_name程序常量C_NameC_company_name游標(biāo)變量Name_cursorEmp_cur
8、sor異常標(biāo)識E_nameE_too_many表類型