`
sunnygrass1
  • 浏览: 74759 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

查询大字段时clob,报java.lang.NumberFormatException: For input string: "4294967295"

阅读更多

在执行查询带有CLOB列的方法时,报如下异常:

ERROR] 2010-12-08 10:18:41 --记录获取失败
java.lang.NumberFormatException: For input string: "4294967295"
 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
 at java.lang.Integer.parseInt(Integer.java:459)
 at java.lang.Integer.parseInt(Integer.java:497)

at oracle.jdbc.driver.OracleResultSetMetaData.getPrecision(OracleResultSetMetaData.java:331)

 

解决办法:

sun实现的那个CacheRowSet 在操作oracle的blog,clob时有问题

以下是网上找到的
ResultSetMetaData接口方法getPrecision的原型是:

public int getPrecision(int column) throws SQLException;

可是Oracle的LOB最大长度是4G-1字节,即4294967295字节,已经超出int类型的范围,所以getPrecision方法会出现异常“NumberFormatException”。对于LOB长度是2G-1字节的sql server等数据库,不存在这个问题。这也可以说是sun错误的限制了LOB列的长度必须小于2G。

解决方案是用oracle自己的CachedRowSet代替sun的CachedRowSet。

 如何用oracle的CachedRowSet呢,在ojdbc14.jar包中,可以调用此对象。下载最新的ojdbc解决

分享到:
评论
3 楼 nanjiwubing123 2013-04-19  
HSunday 写道
美女,在不在啊?我也遇到这个问题了,但是看了你这篇文章还是不知道怎么处理呢?如何调用oracle的CachedRowSet,我用的是hibernate

把最新的jdbc 的jar更新到你的项目就可以。
2 楼 nanjiwubing123 2013-04-19  
是的 ,下载最新的ojdbc14的jar包。可以解决。
1 楼 HSunday 2011-11-17  
美女,在不在啊?我也遇到这个问题了,但是看了你这篇文章还是不知道怎么处理呢?如何调用oracle的CachedRowSet,我用的是hibernate

相关推荐

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    InputStream input = clob.getAsciiStream(); int len = (int) clob.length(); byte[] by = new byte[len]; int i; while (-1 != (i = input.read(by, 0, by.length))) { input.read(by, 0, i); } rtn = new...

    hibernate映射类型.doc

    Hibernate 是一个流行的 Java ORM(对象关系映射)框架,它允许开发者将Java类与数据库表进行映射,简化了数据库操作。在Hibernate中,为了能够将Java对象的数据持久化到数据库中,需要对Java类型和SQL类型进行映射...

    mysql与oracle数据类型对应关系.docx

    - `CHAR`: 固定长度的字符串,Java 中使用 `java.lang.String`。 - `DATE`: 存储日期和时间,Java 中对应 `java.sql.Date`。 - `DECIMAL`、`DOUBLE`、`DOUBLE PRECISION`: 存储浮点数,Java 中使用 `java.lang....

    clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle

    标题"Clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle"暗示了这个压缩包包含的资源是关于使用Java操作Oracle数据库中的CLOB和BLOB字段的示例代码。这个压缩包可能包含了一个名为`clob-blob.java`...

    运用Java如何存取Oracle中的CLOB类型字段

    clob.setString(1, "affffffffffdfdfdfdddddddfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); String sql1 = "update test set content = ? where id = 2"; PreparedStatement pstmt = ...

    ojdbc-12.2.0.1.rar

    Oracle JDBC驱动程序是Java应用程序与Oracle数据库之间通信的桥梁,ojdbc-12.2.0.1.rar是一个包含Oracle JDBC驱动的压缩包,专为Java 8(JDK 8)环境设计。这个版本的驱动支持Oracle数据库的12c版本,提供了高效且...

    java存储oracle中的clob类型

    Reader reader = clob.getCharacterStream(); ``` **2. CLOB的插入与更新** - **插入CLOB数据**: - 使用`empty_clob()`函数分配一个CLOB locator。 - 通过SQL查询获取这个空的CLOB对象。 - 修改CLOB对象的内容...

    oracle数据库的clob大字段在jdbc中的处理方式

    Oracle数据库中的CLOB(Character Large Object)类型是用来存储大量字符数据的,比如长文本、XML文档等。在Java中,当我们需要通过JDBC(Java ...确保高效、安全地操作这些大字段,可以提高应用程序的性能和用户体验。

    Java存取OracleBlob字段,图片存储,Blob和BLOB的问题,Clob,oracle.docx

    String SqlStr = "select Content from TextInfo where TextInfoKey=" + Integer.toString(textinfokey) + " for update"; Statement st = myConn.createStatement(); ResultSet rs = st.executeQuery(SqlStr); ...

    Hibernate和java中的对应数据类型

    - `java.lang.String` 有时用于存储二进制数据(如Base64编码),对应于 SQL 的 `TEXT` 或 `CLOB` 7. **特殊类型**: - `java.io.Serializable` 通常用于存储复杂对象,映射为 `VARBINARY`、`BLOB` - `java.sql....

    Hibernate数据类型映射及ID

    2. **Text**: 映射到`java.lang.String`,在SQL中对应`CLOB`或`TEXT`类型。 3. **Serializable**: 映射到`Serializable`接口实现类,可以存储在`BLOB`类型中。 4. **Clob**: 映射到`java.sql.Clob`,在SQL中对应`...

    jdbc 处理clob类型字段

    查询CLOB字段时,我们可以使用ResultSet的getClob方法获取Clob对象,然后通过getClob.length()或getSubString方法读取数据。例如: ```java String sql = "SELECT my_clob_column FROM my_table WHERE id = ?"; ...

    hibernate中处理大字段 网上收集的文档

    2. 分离大字段:考虑将大字段存储在独立的表中,通过外键关联,减少主表的大小,提高查询效率。 3. 缓存策略:对于不经常变化的大字段,可以利用二级缓存或者第三方缓存系统(如Redis)进行缓存,减少数据库访问。 ...

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    String content = clob.getSubString(1, (int) clob.length()); } ``` 3. Java调用Oracle存储过程处理输出游标: 存储过程是预编译的SQL语句集合,可以在数据库服务器端执行。在Java中,可以使用`...

    数据库读取clob字段

    detailinfo = clob.getSubString(1, (int) clob.length()); } } // 提交事务 conn.commit(); conn.setAutoCommit(true); } catch (Exception e) { e.printStackTrace(); } return detailinfo; } ``` ##...

    mybatis 对clob类型转换

    null : clob.getSubString(1, (int) clob.length()); } // ... 其他方法,如getNullableResult和getResult(ResultSet rs, int columnIndex) } ``` 这个TypeHandler实现了将String转换为CLOB并插入数据库,...

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    java读写oracle clob字段

    BufferedReader br = new BufferedReader(clob.getCharacterStream()); StringBuilder sb = new StringBuilder(); String line; while ((line = br.readLine()) != null) { sb.append(line); } String ...

    java操作clob

    Reader inStream = clob.getCharacterInputStream(); // 读取 CLOB 数据 int c; while ((c = inStream.read()) != -1) { System.out.print((char) c); } // 关闭输入流 inStream.close(); } ``` 在实际...

    oracle的数据类型_java中Clob型详细用法_struts中实现图片上传功能

    1. 创建 ActionForm:定义一个表单类,包含一个类型为 `java.io.File` 的属性来接收上传文件,以及一个类型为 `java.lang.String` 的属性来存储文件名。 2. 配置 struts-config.xml:在 `<form-beans>` 节点下添加...

Global site tag (gtag.js) - Google Analytics