在PL/SQL Developer中使用了不带Where子句的Update语句



我错误地执行了一条更新语句,而pl/sql开发人员中没有任何where子句。当我发现执行需要一段时间才能完成时发生了什么时,我确实点击了中断按钮,提交和回滚按钮在中断执行后变灰,因此无法回滚事务。我担心如果break按钮在pl/sql开发人员中提交事务,或者它回滚到以前的状态。

PL/SQL Developer的Break键不提交,它只是中断当前操作,并保持操作开始时的状态,包括任何打开的事务。例如,如果您在没有提交的情况下进行了三次更新,然后启动了第四次更新,但使用了Break键来中断它,那么您仍然会有前三次未提交的更新,并且Commit和Rollback图标将处于活动状态。

图标变灰了,因为没有要提交的事务。PL/SQL Developer通过在每条语句之后调用dbms_transaction.local_transaction_id来检查打开的事务,从而设置它们的状态。

如果你没有看到"你确定吗">警告弹出窗口,您可以选中配置>用户界面>选项>DSA对话框,如果您之前单击";OK";在";不再显示此消息"弹出窗口。

第一步是保持冷静。。否则你将无法正确思考。

立即执行回滚命令。

然后运行查询以选择更新的字段,并检查结果是否包含更新值以外的任何值。

例如,如果您执行以下查询,

update Employees set Status="Inactive"您应该检查状态列是否包含除"Inactive(非活动("以外的任何值

如果该列包含更新值以外的任何值,则表示您的状态良好。

系统回滚了更新语句。

如果该列不包含更新值以外的值,请与数据库管理员连接以回滚此事务。

他们将能够毫不费力地做到这一点。

最新更新