PL/SQL
變量
聲明變量,變量賦值等.
屬性類型
%TYPE引用型
%ROWTYPE記錄型
異常
預定義異常
Oracle 預定義異常 21 個
命名的系統異常 產生原因
ACCESS_INTO_NULL 未定義對象
CASE_NOT_FOUND CASE 中若未包含相應的 WHEN ,並且沒有設置 ELSE 時
COLLECTION_IS_NULL 集合元素未初始化
CURSER_ALREADY_OPEN 遊標已經打開
DUP_VAL_ON_INDEX 唯一索引對應的列上有重複的值
INVALID_CURSOR 在不合法的遊標上進行操作
INVALID_NUMBER 內嵌的 SQL 語句不能將字符轉換爲數字
NO_DATA_FOUND 使用 select into 未返回行
TOO_MANY_ROWS 執行 select into 時,結果集超過一行
ZERO_DIVIDE 除數爲 0
SUBSCRIPT_BEYOND_COUNT 元素下標超過嵌套表或 VARRAY 的最大值
SUBSCRIPT_OUTSIDE_LIMIT 使用嵌套表或 VARRAY 時,將下標指定爲負數
VALUE_ERROR 賦值時,變量長度不足以容納實際數據
LOGIN_DENIED PL/SQL 應用程序連接到 oracle 數據庫時,提供了不正確的用戶名或密碼
NOT_LOGGED_ON PL/SQL 應用程序在沒有連接 oralce 數據庫的情況下訪問數據
PROGRAM_ERROR PL/SQL 內部問題,可能需要重裝數據字典& pl./SQL 系統包
ROWTYPE_MISMATCH 宿主遊標變量與 PL/SQL 遊標變量的返回類型不兼容
SELF_IS_NULL 使用對象類型時,在 null 對象上調用對象方法
STORAGE_ERROR 運行 PL/SQL 時,超出內存空間
SYS_INVALID_ID 無效的 ROWID 字符串
TIMEOUT_ON_RESOURCE Oracle 在等待資源時超時
用戶定義異常
條件判斷
三種基本語法
1.if 條件 then 業務邏輯 end if;
2.if 條件 then 業務邏輯 else 業務邏輯 end if;
3. if條件 then 業務邏輯 elsif 條件 then業務邏輯 else 業務邏輯 end if;
循環
無條件循環(常用)
有條件循環
for循環(常用)
遊標
可以理解爲PL/SQL中的結果集.
存儲函數
存儲函數又稱爲自定義函數。可以接收一個或多個參數,返回一個結果。在存儲函數中我們可以使用 P/SQL 進行邏輯的處理。
存儲流程
存儲過程是被命名的 PL/SQL 塊,存儲於數據庫中,是數據庫對象的一種。應用程序可以調用存儲過程,執行相應的邏輯。
觸發器
1.確認數據
2.實施複雜的安全檢查
3.跟蹤表上所做的數據操作等
4.數據的備份和同步
分類:
前置觸發器 後置觸發器
行級觸發器
語句級觸發器