Я использовал следующие коды для обновления Oracle 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, не имеют этой процедуры.
Мой второй вопрос заключается в том, требуется ли это для tempClob.close () в операторе finally; мы должны закрыть временную блокировку, как соединение после использования? или не нужно делать это будет автоматически выпущено?