我试图插入的数据作为在Oracle数据库和我使用用于插入代码CLOB是如下:尝试的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.sql.CLOB被转换为oracle.jdbc.OracleConnection
。 createTemp的卵巢(CLOB.java:676)
在oracle.sql.CLOB.createTemporary(CLOB.java:640)
如果我试图创建CLOB
如下
Clob clob = connection.createClob()
和设置字符串值作为
clob.setString(1, "test code");
并且它停留在createClob();
在什么环境下运行你的代码,例如在Tomcat中?你如何创建或检索数据库连接? – Codo
“createClob()”的意思是什么意思?它会崩溃吗?不编译?还是代码挂起,即不继续执行? – Codo
stucking意思是在createClob()后它直接进入finally块并且环境是tomcat,并且在执行操作之前,我正在做一个insert,然后我试图更新数据,其中一个数据列是clob –