1

我需要用两个 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 更新后使用给定的更新查询进行提交吗?如果它在那里,我该如何释放这个锁?

非常感谢您的回答!

4

1 回答 1

1

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

是否使用 CLOB 都没有关系。

于 2012-04-27T08:17:34.977 回答