如果一个查询失败,则跳转到下一个 sql 查询
Posted
技术标签:
【中文标题】如果一个查询失败,则跳转到下一个 sql 查询【英文标题】:Jump to next sql query if one query fails 【发布时间】:2017-12-08 06:06:51 【问题描述】:我想知道是否可以创建查询包,这样如果任何查询失败,那么 plsql 开发人员应该跳转到下一个查询,并且在所有查询运行之前不应该停止,最后它应该显示哪个查询失败。
例如,我设置了 5 个查询。
我创建了一个包含这 5 个查询的包。现在我想创建那个包,这样如果第三个查询在运行时失败,plsql 开发人员不应该停止并且应该跳转到第四个查询并运行所有剩余的查询。在所有查询结果结束时,它应该显示“第三次查询失败”
【问题讨论】:
我认为Try Catch Like Exception Handling In Pl/Sql这个答案会对你有所帮助。我用它对我有用 我认为你应该使用 go to 语句。使用 go to 你可以跳转到 query 中。你想要吗? 从plsqldeveloper
标签,我们可以假设您使用的是Oracle吗?
【参考方案1】:
创建 queryExecutor proecure 以查询作为参数。 程序开始时将审核日志记录到一张表中。 完成/异常块后,将审核日志条目更新为已完成/失败。 使用 DBMS 调度程序调用 queryExcutore。每个查询都将独立运行。
在结束时有 while 循环来检查所有提交的作业是否处于已完成/失败状态.. 直到计数等于提交的作业计数。您可以运行此检查器。一旦两者相等就退出循环。
【讨论】:
【参考方案2】:你可以使用try catch。
这里是语法
开始尝试 sql_statement |语句块 结束尝试 开始捕捉 [ sql_statement |语句块] 结束捕获 [; ]
【讨论】:
一旦查询出现错误,您可以使用它来避免回滚 逻辑已经存在,只需寻找适合您需求的正确语法 @Paras PL/SQL Developer 适用于 Oracle,上面的解决方案适用于 SQL Server,如果这就是您的意思。以上是关于如果一个查询失败,则跳转到下一个 sql 查询的主要内容,如果未能解决你的问题,请参考以下文章