記錄錯誤並繼續執行:錯誤事件記錄子句 --轉
假設您正試圖將表 ACCOUNTS_NY 的記錄插入到表 ACCOUNTS 中。表 ACCOUNTS 在 ACC_NO 列上有一個主鍵。可能 ACCOUNTS_NY 中的某些行與該主鍵衝突。嘗試使用一個常規的插入語句:
SQL> insert into accounts 2 select * from accounts_ny; insert into accounts * ERROR at line 1: ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) violated表 ACCOUNTS_NY 中的記錄均未被裝載。現在,將錯誤事件記錄項開啟,嘗試同樣的操作。首先,您需要建立一個表來儲存由 DML 語句所拒絕的記錄。呼叫該表 ERR_ACCOUNTS。
exec dbms_errlog.CREATE_ERROR_LOG ('ACCOUNTS','ERR_ACCOUNTS')接下來,執行前面的語句,並加入事件記錄子句。
SQL> insert into accounts 2 select * from accounts_ny 3 log errors into err_accounts 4 reject limit 200 5 / 6 rows created.注意,表 ACCOUNTS_NY 包含 10 行,但只有六行被插入;其他四行由於某種錯誤而被拒絕。要找出錯誤是什麼,可查詢 ERR_ACCOUNTS 表。
SQL> select ORA_ERR_NUMBER$, ORA_ERR_MESG$, ACC_NO 2 from err_accounts; ORA_ERR_NUMBER$ ORA_ERR_MESG$ ACC_NO --------------- -------------------------------------------------- ------ 1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) vi 9997 olated 1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS)vi 9998 olated 1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) vi 9999 olated 1 ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) vi 10000 olated請注意列 ORA_ERR_NUMBER$,它顯示在 DML 語句執行期間所遇到的 Oracle 錯誤號,還有 ORA_ERR_MESG$,它顯示錯誤訊息。在本例中,您可以看到四條記錄被丟棄是因為它們與主鍵約束 PK_ACCOUNTS 相沖突。該表還捕獲表 ACCOUNTS 的所有列,包括列 ACC_NO。檢視被拒絕的記錄,注意這些帳號已經在表中存在,因此這些記錄由於 ORA-00001 錯誤而被拒絕。如果沒有錯誤事件記錄子句,則整個語句將會出錯,不會拒絕任務記錄。透過這個子句,只有無效的記錄被拒絕;其他所有記錄均得以接受。 [@more@]記錄錯誤並繼續執行:錯誤事件記錄子句
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/197458/viewspace-1008457/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringMVC錯誤記錄SpringMVC
- CRSF過期,錯誤跳轉(記錄)
- C++錯誤記錄C++
- 錯誤記錄:apache預設網頁訪問錯誤Apache網頁
- tensorflow錯誤記錄:tf.concat
- JS錯誤記錄 – dom操作 – 排序JS排序
- 假資料填充錯誤記錄
- Qt 錯誤記錄registered using qRegisterMetaType().QT
- 記錄一次根據錯誤資訊無法定位錯誤的錯誤
- 記錄redis佇列read error on connection to錯誤Redis佇列Error
- vagrant homestead 錯誤記錄以及解決方案
- 20201215]記錄工作中的錯誤.txt
- [20181219]記錄自己工作中的錯誤.txt
- Docker環境編譯時的錯誤記錄Docker編譯
- Laravel 大檔案分塊上傳錯誤記錄Laravel
- abp9 .net8 升級錯誤記錄
- 虛擬機器部署 Sentinel 服務錯誤記錄虛擬機
- 記錄一個 Nginx-FastCGI-"Primary script unknown" 錯誤NginxAST
- 使用不可變Java記錄Record來避免多執行緒併發錯誤 - foojayJava執行緒
- 記錄一次錯誤的使用當前時間new Date()引發的錯誤
- thinkphp 設定執行目錄為/public後 404錯誤PHP
- 執行錯誤集
- PbootCMS錯誤提示:執行SQL發生錯誤!錯誤:no such column: def1bootSQL
- 華為雲 PHP 加速映象建立 Laravel 專案錯誤記錄PHPLaravel
- JS錯誤記錄 – 右側懸浮框 – 緩衝運動JS
- 記錄一次homestead意外關閉導致的錯誤
- [記錄]關於安裝VMware workstation 時我遇到的錯誤
- 執行SQL發生錯誤!錯誤:disk I/O errorSQLError
- 記錄安裝conda install Python庫時報No module named ‘tensorflow‘錯誤Python
- [記錄]在高光譜影像分類中遭遇的愚蠢錯誤
- PbootCMS執行SQL發生錯誤!錯誤:no such column: def1bootSQL
- PbootCMS 執行SQL發生錯誤!錯誤: no such table:ay_configbootSQL
- mongodb 報錯記錄MongoDB
- JS繼續學習記錄(一)JS
- [譯] 如何將 Stackdriver 連線到智慧家居伺服器以進行錯誤記錄伺服器
- 小白錯誤記錄本之一:輸入法和大小寫很重要
- Navicat Oracle 刪除使用者錯誤ora-01922 個人記錄Oracle
- [譯] 使用Docker安裝Sentry(一個錯誤記錄和聚合平臺)Docker
- 執行指令碼寫入中間表錯誤返回錯誤資訊指令碼