如何关闭DB2自动提交并执行无提交的LOAD脚本?
DB2关闭自动提交并执行LOAD不提交的操作方法
1. 关闭会话的自动提交
首先需要关闭当前数据库会话的自动提交功能,确保所有操作处于手动事务控制下:
- 在DB2命令行处理器(CLP)中执行:
UPDATE COMMAND OPTIONS USING C OFF; - 若使用图形化客户端(如Data Studio),直接在会话设置中找到「自动提交」选项并关闭。
2. 修改LOAD语句,禁止自动提交
默认情况下,通过ADMIN_CMD执行的LOAD操作会自动提交事务,需在LOAD命令中添加COMMIT NO选项,强制LOAD操作不自动提交:
call SYSPROC.ADMIN_CMD( 'LOAD FROM (SELECT * FROM A) OF CURSOR INSERT INTO B COMMIT NO' );
注意事项
- 关闭自动提交后,后续所有数据库操作都需要手动执行
COMMIT;确认事务,或ROLLBACK;回滚事务 - 未提交的LOAD事务会占用数据库日志空间,若处理大量数据,需提前确认日志空间充足,避免因日志耗尽导致操作失败
COMMIT NO选项会将整个LOAD操作作为单个事务处理,确保数据一致性
内容的提问来源于stack exchange,提问作者jeppa
相关产品推荐
相关产品推荐

