sql >> データベース >  >> RDS >> Oracle

空の文字列をoracleClobに更新する方法

    ですでに述べたように、他の質問 :私の経験では、getClob()とsetClob()は正しく機能しません。

    setCharacterStream()を使用します 代わりに:

    StringReader clob = new StringReader("");
    pStmt = conn.prepareStatement("update activity set REFERENCE = ? WHERE ID = ?");
    pStmt.setCharacterStream(1, clob, 0);
    pStmt.setLong(2, 1);
    pStmt.executeUpdate();
    

    そうすれば、更新する前に不要なSELECTを削除することもできます。これにより、パフォーマンスも向上します。

    別のオプションは、単にその列をNULLに設定することです。

    編集:

    新しいドライバー(11.x)では、setString()を使用することもできます。 およびgetString() CLOB列。

    行のロックは、複数のステートメントにまたがるトランザクション中に保持する予定のLOBロケーターを使用する場合にのみ必要です(少なくとも、マニュアルへのリンクされた参照についての私の理解です)。




    1. whileループSQL Server 2008で一時テーブルの行数を使用する

    2. Oracleファビコンを削除する必要があります

    3. RUNAS / NETONLY機能を(C#/。NET / WinForms)プログラムに組み込む方法は?

    4. PostgreSQLレプリケーションが遅れている場合の注意点