Я пытаюсь вставить данные в виде CLOB в Oracle Database и код, я использую для вставки, как показано ниже:Попытка setClob() В JDBC, чтобы вставить строку в базу данных Oracle
Connection connection = getConnection();
PreparedStatement ps = null;
try
{
System.out.println("datra i retrive is : " + status + " " + operationType + " " + errorLog + " " + clipBoardId);
int i = 0;
ps = connection.prepareStatement(SQL_CODELIST_BATCH_UPDATE);
ps.setString(++i, status);
/*ByteArrayInputStream inputStream = new ByteArrayInputStream(errorLog.getBytes());
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);*/
Clob clob = (java.sql.Clob)oracle.sql.CLOB.createTemporary(
connection, false, oracle.sql.CLOB.DURATION_SESSION);
clob.setString(1, errorLog);
ps.setClob(++i, clob);
ps.setString(++i, operationType);
ps.setString(++i, clipBoardId);
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}
finally
{
close(ps);
close(connection);
}
и если г пытаюсь вставить выше кода в методе setClob()
его дает исключение, как показано ниже:
java.lang.ClassCastException: $ Proxy43 не может быть приведен к oracle.jdbc.OracleConnection
в oracle.sql.CLOB. createTemp orary (CLOB.java:676)
на oracle.sql.CLOB.createTemporary (CLOB.java:640)
И если я пытаюсь создать CLOB
ниже
Clob clob = connection.createClob()
и установив значение строки как
clob.setString(1, "test code");
и он застрял в createClob();
В какой среде вы запускаете свой код, например. в Томкате? Как создать или получить соединение с базой данных? – Codo
Что вы подразумеваете под "stucking at createClob()"? Это крушение? Разве это не компилируется? Или код зависает, т. Е. Не продолжать выполнение? – Codo
stucking означает, что после createClob() он будет окончательно блокироваться, а envirnment - tomcat, и перед выполнением операции я делаю вставку, а затем я пытаюсь обновить данные, а один из столбцов данных - clob –