java - 如何使用 jdbc 在 oracle 10g 中插入大型 clob 数据(> 4K 字符)

标签 java oracle jdbc oracle10g clob

你们能告诉我如何使用 jdbc 插入 clob 数据吗?我正在使用oracle10g数据库。

我能够使用以下两种方法插入长度 < 4000 的 clob 数据

1.

tempClob.length()<4000){
   pstmnt.setClob(colNumber, tempClob );
}

2.

tempClob.length()<4000){
   Reader reader =tempClob.getCharacterStream();
   pstmnt.setClob(colNumber, tempClob );
   pstmnt.setCharacterStream(colNumber, reader, new Long(tempClob.length()).intValue());
}

当 clob 数据的长度很大时,例如 abt 29k,这两种方法都会失败。

最佳答案

这适用于 oracle11g jdk5

tempClob.length()<4000){
    byte[] bytes = tempClob.getBytes();
    pstmnt.setCharacterStream(2, new StringReader(new String( bytes  )), bytes.length);
}

关于java - 如何使用 jdbc 在 oracle 10g 中插入大型 clob 数据(> 4K 字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6684214/

相关文章:

oracle - ORA-04036 : PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT

c++ - Oracle SQL 删除位于数组/C 数组/数据结构中的值

java - 检查 JDBC 请求是否正确执行

java - 在 Spark sql 中按二进制类型过滤

java - 为什么我有不止一份 JFR 录音?

Java 泛型、不可转换类型、类型转换、堆 d-ary

sql - 如何只匹配匹配条件的第一行?

java - 一次 try/catch 中的 2 个 SQL 查询。不工作

mysql - 使用 HikariCP 理解和修复 "CommunicationsException: Communications link failure."

java - 使用 java 的 AWS Kinesis Lambda 转换 - 未返回一个或多个记录 ID