【发布时间】:2010-01-26 17:30:32
【问题描述】:
剧情就是这样。用户指定一个数据库表名,系统将检索并显示存储在指定informix数据库表中的所有数据。
Class.forName("com.informix.jdbc.IfxDriver");
Connection conn = DriverManager.getConnection(connUrl)
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from an_ifx_table");
an_ifx_table 是用户指定的任何表名。问题是有一个使用 BigSerial 数据类型定义的列。所以,代码总会抛出异常:
java.sql.SQLException: bigserial
at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3204)
at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3518)
at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353)
at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269)
at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1428)
at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1401)
at com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:204)
由于系统从哪个表中检索数据将由用户指定,我们不能跳过或强制转换具有 BigSerial 数据类型的列。
对处理这种情况有什么建议吗?
【问题讨论】:
-
添加你的操作系统和JDBC驱动的版本信息。