Както вече споменах в другия ви въпрос :според моя опит 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 локатор, който възнамерявате да запазите по време на транзакция, която обхваща повече от един оператор (поне това е моето разбиране за свързаната препратка към ръководството).