从Informix表中选择BigSerial列数据

时间:2010-01-26 04:10:46

标签: jdbc informix

场景就是这样。用户将指定数据库表名称,系统将检索并显示存储在指定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是user指定的任何表名。问题是有一个用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数据类型的列。

有任何建议来处理这种情况吗?

1 个答案:

答案 0 :(得分:1)

我刚刚创建了一个带有SERIAL8列的表,用一些数据填充它,我可以从ResultSet中读取所有数据。

也许你的JDBC驱动程序已经老了?

我使用来自JDBC.3.50.JC5.tar的JDBC驱动程序。您也可以尝试使用JDBC-ODBC桥。安装Informix ClientSDK,创建ODBC源,然后作为驱动程序使用:

sun.jdbc.odbc.JdbcOdbcDriver

connUrl

jdbc:odbc:[ODBC_source_name]

在我的Windows机器上,我使用clientsdk.3.50.TC5.WIN.zip,在Linux上我使用clientsdk.3.50.UC5.LINUX.tar