Questions tagged «error-handling»

4
如何中断SQL脚本执行
我正在使用sql脚本,如果不满足某些条件,我有停止继续执行脚本的要求。 当我用Google搜索它时,我发现RaisError严重性级别为20会终止它。但是由于某些原因,我无法使用该选项。 能否请我提供停止SQL脚本执行的替代方法。

2
Oracle PL / SQL是否具有标准的ASSERT例程?
我想使用一种ASSERT例程,其功能与其他语言中发现的例程类似,即一种构造(它是一种过程,语法...) ASSERT( <condition>, <msg>) 这样,当<condition>传入的第一个参数为false时,将使用指定的<msg>描述性消息引发异常。 我知道手工完成这项工作很简单,但是我想问一下DBMS是否提供了一个标准的工具。 必须编写我自己的一个或从3rdy-party包中导入一个是不切实际的,因为我需要它对于我正在研究的每个项目都具有完全可移植性和透明性。

1
生成带有上下文的异常
PostgreSQL引发异常时,将出现“ CONTEXT”行,例如: ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement 但是当我抛出异常时,此行不存在。我没有找到如何添加它。 RAISE EXCEPTION 'blablabla' USING HINT = 'blablablabla'; 是否可以将此行添加到我的例外中?

3
什么是SQL Server中的ERROR_STATE()?如何使用它?
我读到这ERROR_STATE()可以帮助区分源代码中可能发生相同类型错误的不同状态/位置。但是对我来说,真的不清楚如何使用它。 MSDN指出: ERROR_STATE() 返回导致运行TRY…CATCH构造的CATCH块的错误的状态号。 如何才能真正使用它?可以给我一个例子吗,本参考文章中提供的例子并不能帮助我很好地解释事情吗?

2
如何在PL / pgSQL中获取手动引发的异常的异常上下文?
在Postgres中,我们使用以下代码获取异常的“堆栈跟踪”: EXCEPTION WHEN others THEN GET STACKED DIAGNOSTICS v_error_stack = PG_EXCEPTION_CONTEXT; 对于“自然”异常,这很好用,但是如果我们使用 RAISE EXCEPTION 'This is an error!'; ...那么就没有堆栈跟踪。根据邮件列表条目,这可能是故意的,尽管我一生都无法弄清原因。这让我想找出引发异常的另一种方法,而不是使用RAISE。我只是想念一些明显的东西吗?有人对此有把戏吗?是否有我可以让Postgres抛出的异常,其中包含我选择的字符串,这样我不仅可以在错误消息中得到我的字符串,而且还可以得到完整的堆栈跟踪信息? 这是一个完整的示例: CREATE OR REPLACE FUNCTION error_test() RETURNS json AS $$ DECLARE v_error_stack text; BEGIN -- Comment this out to see how a "normal" exception will give you the stack trace RAISE …

3
使用try / catch进行动态SQL备份命令时如何记录错误详细信息
在使用try catch和动态sql的存储过程中发出备份命令时,与直接运行备份命令相比,错误消息非常普遍。 在SP中尝试/捕获: begin try execute sp_executesql @sql; -- a backup command end try begin catch print ERROR_MESSAGE(); -- save to log, etc. end catch 结果是 50000:usp_Backup:117:BACKUP DATABASE异常终止。 wheareas发出raw命令: backup DATABASE someDb to disk... 结果更好的细节: 查找错误-SQL Server数据库错误:文件“ H:\ FolderName \ Filename.bak:” 112上发生了不可恢复的I / O错误(磁盘上没有足够的空间。)。 有没有办法将这些详细信息捕获到存储过程中的变量中(进行记录,传递回调用方以进行重试逻辑)?似乎详细信息正在通过消息通道传递,但我希望它们在SP中可用。

2
SQL Server中的批处理中止错误列表
在SQL Server中,如果XACT_ABORT关闭,则某些错误将终止当前语句(例如,向使用某些参数的存储过程提供不正确数量的参数),而某些错误将中止整个批处理(例如,将参数提供给存储的不带参数的程序)。[参考]:http : //www.sommarskog.se/error-handling-I.html#scope-abortion。 我想知道的是,是否有明确的列表列出哪些错误正在批处理中止,哪些错误正在语句终止。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.