如果没有错误,则提交事务;如果Oracle SQL*plus中发生错误,则回滚
下面是我用来在数据库中部署SQL脚本的一小段代码。我只是想知道是否可以根据结果自动执行提交或回滚任务如果没有错误,则提交事务;如果Oracle SQL*plus中发生错误,则回滚,sql,oracle,commit,oracle-sqldeveloper,Sql,Oracle,Commit,Oracle Sqldeveloper,下面是我用来在数据库中部署SQL脚本的一小段代码。我只是想知道是否可以根据结果自动执行提交或回滚任务 disc connect username/password@database spool D:\Deployments\path\to\logfile\logfile.log @D:\Deployments\path\to\script\sqlquery_script.sql 如果sql脚本在没有任何错误的情况下成功运行,则意味着我希望系统自动提交它,如果发生任何错误,则应回滚所有事务(注意
disc
connect username/password@database
spool D:\Deployments\path\to\logfile\logfile.log
@D:\Deployments\path\to\script\sqlquery_script.sql
如果sql脚本在没有任何错误的情况下成功运行,则意味着我希望系统自动提交它,如果发生任何错误,则应回滚所有事务(注意,我的sql脚本有许多update语句)
每当SQLERROR退出SQL.code ROLLBACK时使用时代码>SQL*plus窗口关闭,不显示任何错误
请帮助解决此问题。您没有说明您的脚本是什么。把它放在PL/SQL匿名块中怎么样
BEGIN
... updates here ...
COMMIT;
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
RAISE;
END;
/
你没说你的剧本是什么。把它放在PL/SQL匿名块中怎么样
BEGIN
... updates here ...
COMMIT;
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
RAISE;
END;
/
可能您可以调用过程,或者在Sql脚本中调用过程
exec procedureName(参数1,参数2)
将此语句保存在sql文件中
如有例外,请将本声明与上述声明一并保存
例外情况
当x_出错时,则
回滚 您可能可以调用过程,或者在Sql脚本中调用过程
exec procedureName(参数1,参数2)
将此语句保存在sql文件中
如有例外,请将本声明与上述声明一并保存
例外情况
当x_出错时,则
回滚 谢谢@eaolson。很好用!正如您所要求的,我的脚本将包含Update和Insert。例如,我可能在同一个脚本文件中有10-15个udpate查询和相同数量的insert查询。现在,我需要假脱机脚本每行的结果。是否可能?PL/SQL块中的DML不会导致显示“x行更新”类型的消息。相反,您可以创建自己的消息并使用dbms_output.put_line.Thank@eaolson。很好用!正如您所要求的,我的脚本将包含Update和Insert。例如,我可能在同一个脚本文件中有10-15个udpate查询和相同数量的insert查询。现在,我需要假脱机脚本每行的结果。是否可能?PL/SQL块中的DML不会导致显示“x行更新”类型的消息。相反,您可以创建自己的消息并使用dbms_output.put_行。