【发布时间】:2018-07-13 14:23:53
【问题描述】:
我正在尝试将列 OLD_COL 中的所有值复制到同一表内的另一列 NEW_COL 中。
为了达到我想要的结果,我在Oracle中写下了以下UPDATE:
UPDATE MY_TABLE
SET NEW_COL = OLD_COL
WHERE NEW_COL IS NULL;
其中MY_TABLE 是一个由 400.000 行组成的大表。
当我尝试运行它时,它失败并出现错误:
QL 错误:ORA-02049:超时:分布式事务等待锁定
02049. 00000 - “超时:分布式事务等待锁定”
*原因:超过了 INIT.ORA 分布式锁定超时秒数等待锁定。
*Action:视为死锁
我尝试运行以下查询以单独更新一行:
UPDATE MY_TABLE
SET NEW_COL = OLD_COL
WHERE ID = '1'
这按预期工作。
因此,为什么我不能更新表中的所有行?为什么会出现这个错误?
【问题讨论】:
标签: sql oracle sql-update