Oracle Exception

          1) 基本結構
          ? BEGIN
          ??? ... --語句
          ? EXCEPTION -- 例外處理
          ??? WHEN ...
          ??? ...
          ??? WHEN OTHERS
          ????? ...
          ? END;

          ? 2) 常用預定義例外
          ? EXCEPTION
          ??? WHEN CURSOR_ALREADY_OPEN THEN -- ORA-06511 SQLCODE = -6511 游標已經打開
          ????? ...
          ??? WHEN DUP_VAL_ON_INDEX THEN -- ORA-00001 SQLCODE = -1 向唯一索引中插入重復數據
          ????? ...
          ??? WHEN INVALID_CURSOR THEN -- ORA-01001 SQLCODE = -1001 非法游標操作
          ????? ...
          ??? WHEN INVALID_NUMBER THEN -- ORA-01722 SQLCODE = -1722 字符向數字轉換失敗
          ????? ...
          ??? WHEN LOGIN_DENIED THEN -- ORA-01017 SQLCODE = -1017
          ????? ...
          ??? WHEN NO_DATA_FOUND THEN -- ORA-01403 SQLCODE = +100 沒有找到數據
          ????? ...
          ??? WHEN NOT_LOGGED_ON THEN -- ORA-01012 SQLCODE = -1012
          ????? ...
          ??? WHEN PROGRAM_ERROR THEN -- ORA-06501 SQLCODE = -6501 程序錯誤
          ????? ...
          ??? WHEN STORAGE_ERROR THEN -- ORA-06500 SQLCODE = -6500
          ????? ...
          ??? WHEN TIMEOUT_ON_RESOURCE THEN -- ORA-00051 SQLCODE = -51
          ????? ...
          ??? WHEN TOO_MANY_ROWS THEN -- ORA-01422 SQLCODE = -1422 返回多行
          ????? ...
          ??? WHEN TRANSACTION_BACKED_OUT THEN -- ORA-00061 SQLCODE = -61
          ????? ...
          ??? WHEN VALUE_ERROR THEN -- ORA-06502 SQLCODE = -6502 數值轉換錯誤
          ????? ...
          ??? WHEN ZERO_DIVIDE THEN -- ORA-01476 SQLCODE = -1476 被零除
          ????? ...
          ??? WHEN OTHERS THEN -- 其它任何錯誤的處理
          ????? ...
          ? END;

          ? 3) 用戶定義的例外
          ? DECLARE
          ??? FIND_DATA_EMP????EXCEPTION;
          ? BEGIN
          ??? IF ... THEN
          ????? RAISE FIND_DATA_EMP;
          ??? END IF;
          ? EXCEPTION
          ??? WHEN LOB_NO_LOCKED THEN
          ????? ...
          ? END;
          ? 4) EXCEPTION_INIT的使用
          ? PRAGMA EXCEPTION_INIT(例外名, ORACLE錯誤號);
          ? 注:PRAGMA 是一個編譯器命令,可以認為是對編譯器的一個注釋。
          ? 例:
          ? DECLARE
          ??? ZERO_DIVIDE1????EXCEPTION;
          ??? PRAGMA EXCEPTION_INIT(ZERO_DIVIDE1, -1476);
          ? BEGIN
          ??? ...
          ? EXCEPTION
          ??? WHEN ZERO_DIVIDE1 THEN
          ????? ...
          ? END;

          posted on 2010-08-03 11:32 飛熊 閱讀(524) 評論(0)  編輯  收藏 所屬分類: ORACLE

          <2010年8月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 陆丰市| 福清市| 长丰县| 泌阳县| 丰镇市| 永胜县| 湖州市| 岗巴县| 墨江| 揭东县| 霍林郭勒市| 凤山市| 依兰县| 阜阳市| 莱州市| 玉环县| 阳东县| 滨州市| 芜湖县| 阳曲县| 江城| 会泽县| 兴业县| 新蔡县| 乌海市| 民和| 清水县| 阳信县| 芮城县| 措美县| 平顶山市| 镇沅| 临清市| 忻城县| 万安县| 湖北省| 大理市| 安康市| 门头沟区| 翁牛特旗| 电白县|