我需要用两个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更新后进行/执行提交吗? 如果它存在,我怎么能释放这个锁?
非常感谢你的回答!
答案 0 :(得分:1)
您必须提交每个DML查询(INSERT,UPDATE,DELETE)。
无论您使用CLOB还是否,都无关紧要。