ORACLE更新了两个CLOB列 - 可能的表锁用于进一步更新?

时间:2012-04-26 12:26:30

标签: php oracle clob

我需要用两个CLOB列更新ORA表。

我找到了很多解决方案(一个使用select x, y into x_loc, y_loc from table for update,然后执行dbms_lob.write() + commit)但我意识到这个解决方案应该是这样简单:

UPDATE table SET
    clob1 = TO_CLOB(VARCHAR2_VALUE),
    clob2 = TO_CLOB(VARCHAR2_VALUE)
WHERE condition

从PHP应用程序执行此查询后,当我无法在该表(和/或具体行)上执行任何其他更新时,我会遇到奇怪的行为 - 应用程序只是在另一次更新时挂起(通过调试确认)。尝试使用sqldeveloper进行更新查询时,似乎没有锁定问题。

在CLOB更新后,表/行是否有可能保持锁定状态? 我应该在使用给定的更新查询进行CLOB更新后进行/执行提交吗? 如果它存在,我怎么能释放这个锁?

非常感谢你的回答!

1 个答案:

答案 0 :(得分:1)

您必须提交每个DML查询(INSERT,UPDATE,DELETE)。

无论您使用CLOB还是否,都无关紧要。