1

2 つの CLOB 列を持つ ORA テーブルを更新する必要があります。

私はこれに対して多くの解決策を見つけました(1つは + を使用してから+を実行します)が、これ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 に答える