を更新するために、私はOracleのCLOBを更新するには、次のコードを使用:使用オラクルはcreateTemporaryは、CLOB
CLOB tempClob = null;
try {
Connection conn = getConnection();
PreparedStatement = = conn.prepareStatement("UPDATE PROGRAM_HISTORY SET DETAILS = ? WHERE ID = 12");
tempClob = CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);
tempClob.open(CLOB.MODE_READWRITE);
Writer tempClobWriter = tempClob.getCharacterOutputStream();
tempClobWriter.write(clobData);
tempClobWriter.flush();
tempClobWriter.close();
tempClob.close();
pStmt.setClob(1, tempClob);
pStmt.execute();
} catch (Exception ex) { // Trap errors
System.out.println(" Error Inserting Clob : "+ex.toString());
ex.printStackTrace();
}finally{
if(tempClob != null) tempClob.freeTemporary();
opstmt.close();
conn.close();
}
あなたが見ることができるように、一時CLOBを作成した後、私はtempClob.open(CLOB.MODE_READWRITE)を使用。 tempClob.close()を開いて使用します。私の質問は、これが必要なのですか?もしそうなら、なぜですか? Googleから検索したサンプルコードの一部にこの手順がないためです。
私の2番目の質問は、これがfinallyステートメントのtempClob.close()に必要です。私たちは使い切った後の接続のように一時的なクローブを閉じる必要がありますか?またはこれを行う必要はありませんそれは自動的に解放されますか?