有哪些我的更新或插入语句,未能在try..catch SQL问题
回答
开始创建一个表,你已经运行变量 插入的步骤或错误信息到表varaiable你去通过proc 。 在catch中回滚之后,表变量仍然可用,然后用它插入到日志表中。
的Oracle PL/SQL执行catch块有异常处理知道任何方式:http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm。
否则,您可以使用编程语言异常处理工具。
如何围绕你的更新和插入语句与不同的try-catch块?你
还可以检查SELECT ERROR_MESSAGE(), ERROR_STATE()
以确定是什么抛出当前异常
并每次重复捕获逻辑? – 2010-05-25 17:24:18
@KM:通常这只是几串代码..在我的应用程序 - 5(每个sp重复97次)。为什么不?当然,如果它包含更多的字符串,更多的逻辑 - 复制是一个坏主意。但为什么不把它执行到额外的存储过程? – abatishchev 2010-05-25 17:34:54
如果使用临时表或任何其他导致过程重新编译的事情,则会向系统添加负载,因为每次运行过程时都必须重新编译该重复代码,更不用说混淆实际代码并使每个过程比它需要的时间更长。 – 2010-05-25 18:42:35
堆栈转储可能包含一些信息,如哪一行错误发生,但是这不是直接有用的。
最简单的可能是在每个查询之前设置一个变量,然后您可以在catch中检查它的值。
想到的一件事是在事件查看器执行后立即将错误代码记录到事件查看器中。
例如
尝试 err_code = 1 --query 1-- err_code = 2 --query 2-- 。 。 。 Catch - 将log err_code记录到事件查看器 -
然后通过查看事件查看器,您将看到最后一次成功查询的err_code。
希望它有助于
尝试这样的事:
Declare @Where varchar(50)
BEGIN TRY
SET @Where='1st update'
UPDATE....
SET @Where=NULL
...
SET @Where='2nd update'
UPDATE....
SET @Where=NULL
...
SET @Where='1 insert'
INSERT....
SET @Where=NULL
END TRY
BEGIN CATCH
PRINT @Where
END CATCH
- 1. T-SQL TRY CATCH的问题?
- 2. try catch块问题
- 3. C++中的Try-Catch问题
- 4. sql server 2000 try catch
- 5. TRY CATCH
- 6. 的try-catch问题继承(JAVA)
- 7. 关于C++的一些问题try catch
- 8. 使用try-catch块的问题
- 9. 找不到符号问题try-catch
- 10. Android上的Try and Catch问题
- 11. 约try/catch语句简单的问题
- 12. 这个try catch有什么问题?
- 13. try catch语句的作用域问题
- 14. 在try catch块
- 15. T-SQL中的TRY CATCH块
- 16. Java Scope Try/Catch
- 17. TRY/CATCH_ALL vs try/catch
- 18. 解释Try try; Catch;
- 19. Try Catch does not catch
- 20. Try {} Catch(exception){throw}
- 21. Javascript Try/Catch
- 22. php try catch wsod
- 23. 在try catch块中访问和运行代码的问题
- 24. JAVA - Try/Catch
- 25. Try/catch in PHP
- 26. AssertTrue in try/catch
- 27. 异常处理try catch catch catch
- 28. 如何在try catch块
- 29. Try Catch not working?
- 30. try catch块
请问哪种编程语言? – vodkhang 2010-05-25 12:51:01
某些数据库引擎允许TRY ...类似CATCH的语句。如果我没有记错的话,SQL Server会这样做。你想要完成什么?你使用什么数据库引擎? – 2010-05-25 12:51:18
大概你在这里指的是存储过程/函数?如果您使用的是RDBMS平台,它会很有帮助。 – 2010-05-25 12:52:13