繁体   English   中英

在 PL/SQL Developer 中使用了没有 Where 子句的更新语句

[英]Used an Update Statement without Where clause in PL/SQL Developer

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

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

立即执行回滚命令。

然后查询 select 更新的字段,检查结果是否包含更新值以外的任何值。

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

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

如果该列包含更新值以外的任何值,那么您很好。

系统回滚了该更新语句。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM