Oracle脚本中的错误处理
发布时间:2020-12-12 13:15:19 所属栏目:百科 来源:网络整理
导读:我一直在尝试解决这个问题,我认为现在是时候寻求帮助了.我正在构建模式配置脚本,我想添加一些脚本输出和错误处理.这个想法是脚本输出窗口只显示没有所有噪音的关键信息. Create Temporary Error TableBegin Transaction-- begin work blockPrint "Doing some
我一直在尝试解决这个问题,我认为现在是时候寻求帮助了.我正在构建模式配置脚本,我想添加一些脚本输出和错误处理.这个想法是脚本输出窗口只显示没有所有噪音的关键信息.
Create Temporary Error Table Begin Transaction -- begin work block Print "Doing some types of work" -- do work here If Error and Active Transactions > 0 Then Rollback If Active Transactions = 0 Then Insert Error In Temp Error Table and Start Another Transaction -- end work block -- once all all work complete If Active Transactions > 0 Then Commit Transactions 在SQL Server世界中,我通常会用Red Gate’s SQL Packager执行此操作,但它已经弄明白了(提示,提示Red Gate – 我们需要Oracle版本:)).有关从哪里开始使用Oracle获得类似内容的任何想法? 解决方法在Oracle中,您可以定义事务边界 – 在完成后提交,并且每个语句都是原子的.如果您正在使用SQL * Plus,并且如果出现任何问题,您根本不需要提交任何内容,那么您可以在SQL脚本中添加以下内容: SET ECHO ON SPOOL /some/path/to/logfile.log WHENEVER SQLERROR EXIT SQL.CODE ROLLBACK -- run your code or DML statements COMMIT; EXIT; 这将在第一次遇到错误时弹出,因此错误语句将位于日志文件的末尾.它还将回滚任何更改,因此只要没有任何COMMIT(或导致它们的语句,如CREATE,ALTER,DROP,GRANT或REVOKE),那么整个升级都是全有或全无. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |