記錄錯誤並繼續執行:錯誤事件記錄子句 --轉
假設您正試圖將表 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 執行轉換時如何讓Kettle記錄錯誤並繼續執行?——記一種解決方案
- Kafka錯誤記錄Kafka
- C++錯誤記錄C++
- SpringMVC錯誤記錄SpringMVC
- hadoop 安裝錯誤記錄(持續更新)Hadoop
- 錯誤記錄:apache預設網頁訪問錯誤Apache網頁
- JS錯誤記錄 – dom操作 – 排序JS排序
- 假資料填充錯誤記錄
- virtualbox 錯誤解決記錄
- 記錄一次根據錯誤資訊無法定位錯誤的錯誤
- MongoDB的一次錯誤記錄MongoDB
- 錯誤記錄(八)could not initialize proxy - no SessionSession
- postgresal使用錯誤解決 (記錄篇)
- Qt 錯誤記錄registered using qRegisterMetaType().QT
- Oracle RAC 錯誤記錄以及處理方法Oracle
- vagrant homestead 錯誤記錄以及解決方案
- Docker環境編譯時的錯誤記錄Docker編譯
- php安全配置記錄和常見錯誤梳理PHP
- V$SESSION記錄的BLOCKING_SESSION錯誤SessionBloC
- 虛擬機器部署 Sentinel 服務錯誤記錄虛擬機
- 記錄redis佇列read error on connection to錯誤Redis佇列Error
- Laravel 大檔案分塊上傳錯誤記錄Laravel
- Incorrect key file for table '/tmp/....'錯誤的解決--記錄
- 用dbms_error記錄load時的錯誤Error
- abp9 .net8 升級錯誤記錄
- 使用不可變Java記錄Record來避免多執行緒併發錯誤 - foojayJava執行緒
- 記錄一次錯誤的使用當前時間new Date()引發的錯誤
- thinkphp 設定執行目錄為/public後 404錯誤PHP
- MySQL儲存函式錯誤[Err] 1064的除錯記錄MySql儲存函式除錯
- 求救!!!!!!jsp執行錯誤;(轉)JS
- 個人誤操作記錄
- 華為雲 PHP 加速映象建立 Laravel 專案錯誤記錄PHPLaravel
- 記錄一個 Nginx-FastCGI-"Primary script unknown" 錯誤NginxAST
- 執行錯誤集
- PbootCMS錯誤提示:執行SQL發生錯誤!錯誤:no such column: def1bootSQL
- JS錯誤記錄 – 右側懸浮框 – 緩衝運動JS
- [記錄]關於安裝VMware workstation 時我遇到的錯誤
- 錯誤記錄(九)Could not obtain transaction-synchronized Session for current threadAIsynchronizedSessionthread