VS Code Oracle开发工具关闭自动提交仍提交事务问题咨询
问题解答
这确实是VS Code中Oracle开发工具(如官方的Oracle Developer Tools for VS Code)的预期行为,和Toad的事务处理逻辑存在差异,具体细节如下:
- 核心差异:ODT for VS Code默认会在成功执行以
/结尾的匿名PL/SQL块后自动提交事务,即便你已经关闭了autocommit设置。而Toad严格遵循autocommit开关,只有手动执行COMMIT或代码中显式写COMMIT时才会提交事务。 - 验证方式:执行完你的示例PL/SQL块后,直接查询
jobs表,若记录已被永久删除(回滚后无法恢复),说明工具已自动提交了事务。 - 调整方法:
- 打开VS Code设置,搜索
Oracle: Auto Commit,确认其值为off; - 若存在
Oracle: Execute PL/SQL With Commit选项,将其设置为false,即可禁用PL/SQL块的自动提交行为。
- 打开VS Code设置,搜索
- 替代方案:如果不想依赖工具设置,可在代码中显式控制事务,不依赖工具自动提交:
BEGIN DELETE FROM jobs WHERE j_id = 9; -- 此处不添加COMMIT,后续手动执行COMMIT/ROLLBACK控制事务 END; /
内容的提问来源于stack exchange,提问作者Zahrada
相关产品推荐
相关产品推荐

