2012-04-26 5 views
1

2つのCLOB列でORA表を更新する必要があります。ORACLEは2つのCLOB列を更新します。

私は( select x, y into x_loc, y_loc from table for updateと一つにして、+ commit dbms_lob.write()を行う)これには多くの解決策を発見した

が、私はこの1つはそれがあるべきほど単純であることに気づい:

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

PHPからこのクエリを実行した後アプリケーション私はそのテーブル(および/または具体的な行)で他のアップデートを実行できないと、奇妙な動作に遭遇します - アプリケーションは別のアップデート(デバッグによって確認)で正しくハングアップします。 sqldeveloperを使用して更新クエリを実行しようとすると、ロックの問題はないようです。

CLOBの更新後にテーブル/行がロックされている可能性はありますか? 指定された更新クエリを使用してCLOBを更新した後にコミットを行う必要がありますか? このロックを解除するにはどうしたらいいですか?

あなたの回答には多くの感謝があります!

+1

コミットコミット – iddqd

+0

@iddqdあなたの答えを受け入れることができるように、それを完全な文章で囲んで回答として投稿してください。もちろん、COMMITを単独で実行した後にテーブルがリリースされます;-)ありがとうございました! – shadyyx

答えて

1

すべてのDML問合せ(INSERT、UPDATE、DELETE)をコミットする必要があります。

CLOBを使用するかどうかは関係ありません。

+0

「それぞれのINSERT/UPDATE/DELETE後にコミットする必要があります」ということについてはわからない - CLOBを更新するまで問題は発生していない。しかし、CLOB更新がコミットされた後にコミット(ロック解除)していて、動作しています(それ以来ロックなし)。ありがとう! – shadyyx

関連する問題