Oracle的基本語法,存儲函數及觸發器

1.PL/SQL
    PL/SQL是Oracle對 ql語言的過程化擴展,指在 SQL 命令語言中增長了過程處理語句,使SQL語言具備過程處理能力。把 SQL 語言的數據操縱能
  力與過程語言的數據處理能力結合起來,使得 PLSQL 面向過程但比過程語言簡單、高效、靈活和實用。
   基本語法結構:
        [declare]   -- 聲明變量
        begin       -- 代碼邏輯
        [exception] -- 異常處理
        end;
    注意:end後的";"不能取消掉
2.Oracle經常使用的異常
    命名的系統異常                           產生緣由
    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 在等待資源時超時
3.Oracle的基本語法
    (1).條件判斷
        基本語法1
            if 條件 then
              業務邏輯
            end if;
        基本語法2
            if 條件 then
              業務邏輯
            else
              業務邏輯
            end if;
        基本語法3
            if 條件 then
              業務邏輯
            elsif 條件 then
              業務邏輯
            else
              業務邏輯
            end if;
    (2).循環
        (1)無條件循環
            loop
              循環語句
            end loop;
        (2)條件循環
            while 條件
            loop
              循環語句
            end loop;
        (3)for循環
            for 變量 in 起始值..終止值
            loop
              循環語句
            end loop;
    (3)遊標使用
        基本語法: cursor 遊標名稱 is SQL 語句;
        在循環過程使用:
            open 遊標名稱
                loop
                    fetch 遊標名稱 into 變量
                    exit when 遊標名稱%notfound
                end loop;
            close 遊標名稱
4.Oracle存儲函數
    存儲函數又稱爲自定義函數,能夠接收一個或多個參數,返回一個結果,在函數中咱們能夠使用PL/SQL進行邏輯的處理。
    基本語法:
        create [ OR REPLACE ] function 函數名稱
        (參數名稱 參數類型, 參數名稱 參數類型, ...)
        return 結果變量數據類型
        is
        變量聲明部分;
        begin
        邏輯部分;
        return 結果變量;
        [EXCEPTION
        異常處理部分]
        end; <注意:end後的";"不能取消掉>
5.Oracle的觸發器
    數據庫觸發器是一個與表相關聯的、存儲的PL/SQL程序,每當一個特定的DML(數據操做語句)在指定的表上發出時,Oracle 自動地執行觸發
  器中定義的語句序列。
    其語法格式爲:
        create [or REPLACE] trigger 觸發器名
        BEFORE | AFTER --判斷先開始觸發仍是後開始觸發
        [DELETE ][[or] INSERT] [[or]UPDATE [OF 列名]]
        on 表名
        [FOR EACH ROW ][WHEN(條件) ]
        declare
        ……
        begin
            LSQL 塊
        end;<注意:end後的";"不能取消掉>數據庫

相關文章
相關標籤/搜索