(1.)PL/SQL體系結構: PL/SQL引擎用來編譯和執行,PL/SQL塊或子程序,該引擎駐留在Oracle服務器中。 (2.)PL/SQL塊簡介 PL/SQL是一種塊結構語音,它將一組語句塊放在一個快中。 (3.)運算符和表達式: PL/SQL語音支持操做符包含關係運算符,通常運算符和邏輯運算符,與SQL語音相似。 (4.)常量和變量聲明 在PL/SQL塊的可執行部分引用變量和常量前,必須先對其進行聲明。變量和PL/SQL塊的部分聲明,在PL/SQ塊的 可執行部分被使用。語法以下: Variable_name data_type 變量範圍 變量的初始值; (5.)註釋: 在PL/SQL能夠使用以下兩種註釋符號: ‘--’雙減號 ‘/* */’sql
在PL/SQL快中的可執行部分引用的變量和常量前,必須先對其聲明
語法:variable_name data_type[(size)][:=init_value]; 變量名稱 數據類型 size 指定變量的初始值數據庫
(1.)Oracle使用變量類型圖編程
(2.)LOB數據類型 (3.)屬性類型: %Type:定義一個變量,其數據類型與已經定義的某個數據變量(尤爲是表的某一列)的數據類型相一致這時能夠使用%Type (優勢:能夠沒必要知道所引用的數據庫列的數據類型。所引用的數據類型能夠實現時改變,容易保持一致,沒必要修改PL/SQL程序)
%ROWTYPE:返回一個記錄類型,其數據類型和數據庫表的數據結構相一致,這時能夠使用%ROWTYPE.(優勢:能夠沒必要知道所引用數據庫列的個數和數據類型。所引用的數據庫中列的個數和數據庫類型能夠實現改變,容易保持一致,不用修改PL/SQL程序)安全
If 布爾表達式 then PL/SQL和SQL語句 Elsif 其餘布爾表達式 then 其餘語句 Elsif 其餘布爾表達式 then Else 其餘語句 End if;服務器
For循環語法以下 For 循環計數器 In reverse 下限…….上限 loop 要執行的語句 End loop;數據結構
(1.)預約義異常:模塊化
(2.)處理用戶自定義異常: 在PL/SQL塊的定義部分定義的異常狀況 異常狀況 exceptlon 拋出異常狀況: Raise 異常狀況 在PL/SQL塊的異常狀況處理部分對異常狀況作出的相應處理工具
(1.)遊標的分類 隱式遊標:返回單行記錄 顯示遊標:返回多行記錄 顯示遊標使用步驟: (1.)聲明遊標:cursor 名稱 is (2.)打開遊標:open 名稱; (3.)提取遊標:fetch 名稱 into variables; (4.)關閉遊標: close 名稱; (5.)使用循環遊標簡化遊標的讀取語法: For 聲明記錄變量 in 名稱 Loop Executable_statements End loop; (4.)No_data_found和notfound的區別 Select………into語句返回0條記錄和多條記錄是觸發no_data_found 當update或delete語句的where子句未找到時,觸發%notfound 在提取循環中用%notfound或%found來肯定循環的退出條件,而不用no_data_fuondoop
子程序的組成: (1.)聲明部分:類型,遊標,常量,變量,異常,嵌套子程序聲明 (2.)可執行部分:可執行部分包括賦值,控制執行過程存儲過程當中出現的異常 (3.)異常處理部分:異常處理程序,負責處理執行存儲過程當中出現的異常。 子程序的優勢以下: 模塊化,可重用性,可維護性,安全性。 (4.)存儲過程用法: 1.建立存儲過程:語法以下: Create 語句 procedure 存儲名稱 參數列表 Is|as 局部聲明 Begin
可執行語句 exception 異常處理程序 End 存儲名稱; 2.調用存儲過程 (1.)用命令調用 語法以下: Exce 過程名稱 參數列表; (2.)參數的傳遞方式三種: 按位置傳遞 Exec add_emp(1111,‘mary’,2000,’‘manager’,10); 按名稱傳遞fetch
混合方式傳遞 3.存儲過程參數模式語法以下: 存儲名稱 in|out|in out datatype :=賦值; 4.存儲過程訪問權限 -----授予a執行emp的權限 Grant execute no add_emp to a -------撤銷權限 Revoke execute on add_emp from a; 5.刪除存儲過程 Drop procedure 存儲名稱;
(1.)在sql*plus下調試 (2.)用戶PL/SQL Developer工具調試 其中on_flag有三種狀況: *0表示過程執行成功但無提示信息。 *大於0表示過程執行成功但有提示信息。 *小於1表示過程執行失敗且有提示信息。