如果有一個包含1000個DML語句的PLSQL塊,並且我們想要找出哪個DML語句拋出錯誤(如果有的話),那我們如何才能找出這個錯誤?在PLSQL塊內部捕獲錯誤
0
A
回答
-1
0
使用LOG ERRORS INTO
clause在INSERT
語句來告訴你哪些數據引起異常:
的Oracle 11g R2架構設置:
CREATE TABLE table_name (
value INTEGER
CONSTRAINT MOD5_CHK CHECK (MOD(value, 5) > 0)
)
/
BEGIN
DBMS_ERRLOG.CREATE_ERROR_LOG('table_name', 'errlog');
END;
/
DECLARE
check_violated EXCEPTION;
PRAGMA EXCEPTION_INIT(check_violated, -2290);
BEGIN
INSERT INTO table_name (value)
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 13
LOG ERRORS INTO errlog ('error') REJECT LIMIT 0;
EXCEPTION
WHEN check_violated THEN
NULL;
END;
/
查詢1:
SELECT * FROM table_name
沒有結果
查詢2:
SELECT ORA_ERR_MESG$, ORA_ERR_TAG$, value FROM errlog
| ORA_ERR_MESG$ | ORA_ERR_TAG$ | VALUE |
|----------------------------------------------------------------|--------------|-------|
| ORA-02290: check constraint (USER_4_4E3503.MOD5_CHK) violated | error | 5 |
相關問題
- 1. Oracle plsql捕獲異常
- 2. Rails怪異的捕獲塊錯誤
- 3. 嘗試捕獲塊中的未捕獲錯誤
- 4. 捕獲錯誤
- 5. 在PLSQL中拋出特定的錯誤消息Oracle ...在冬眠中捕獲?
- 6. 錯誤捕獲錯誤
- 7. 使用System.WebClient捕獲500內部服務器錯誤
- 8. 你如何捕獲jQuery插件內部引發的錯誤?
- 9. 未捕獲的SoapFault異常[Http]內部服務器錯誤
- 10. 錯誤在過程體+ PLSQL
- 11. 如何捕獲混合內容錯誤?
- 12. 在PowerShell中捕獲錯誤
- 13. 捕獲錯誤在Ruby中
- 14. 在Node.js中捕獲錯誤
- 15. 在Response.Redirect上捕獲錯誤
- 16. PLSQL錯誤PLS-00302
- 17. VB錯誤捕獲
- 18. 捕獲javascript錯誤
- 19. 捕獲錯誤3
- 20. 錯誤捕獲JWT
- 21. Javascript捕獲錯誤
- 22. 捕獲jplayer錯誤
- 23. 捕獲http錯誤
- 24. SP錯誤捕獲
- 25. 「捕獲」的錯誤
- 26. Ko3 - 果凍模塊 - 500內部錯誤
- 27. NPM: 「找不到模塊內部/錯誤」
- 28. Pdo錯誤捕獲嘗試/捕獲
- 29. 是否可以在原子塊中捕獲Django ORM錯誤?
- 30. 獲取從捕獲錯誤的捕獲錯誤在執行/嘗試/捕獲與斯威夫特
編寫一個異常塊並處理故障。 – XING
[DML和異常處理 - Oracle]的可能重複(https://stackoverflow.com/questions/33540754/dml-and-exception-handling-oracle) – XING
錯誤消息將指示失敗的行。請添加一些關於您面臨的情況的更多細節。 –