我错误地执行了一条更新语句,而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(非活动("以外的任何值
如果该列包含更新值以外的任何值,则表示您的状态良好。
系统回滚了更新语句。
如果该列不包含更新值以外的值,请与数据库管理员连接以回滚此事务。
他们将能够毫不费力地做到这一点。