Jdbc 从Informix表中选择BigSerial列数据

Jdbc 从Informix表中选择BigSerial列数据,jdbc,informix,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

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


有没有处理这种情况的建议?

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

也许您的JDBC驱动程序很旧

我使用的JDBC驱动程序来自
JDBC.3.50.JC5.tar
。您也可以尝试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
我刚刚创建了一个带有
SERIAL8
列的表,用一些数据填充了它,我可以从ResultSet读取所有数据

也许您的JDBC驱动程序很旧

我使用的JDBC驱动程序来自
JDBC.3.50.JC5.tar
。您也可以尝试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

添加操作系统和JDBC驱动程序的版本信息。添加操作系统和JDBC驱动程序的版本信息。谢谢朋友!我刚查过。我的Informix JDBC驱动程序已经过时。刚刚下载了JDBC.3.50.JC5.tar并对其进行了测试。现在一切都好了。谢谢你的朋友!我刚查过。我的Informix JDBC驱动程序已经过时。刚刚下载了JDBC.3.50.JC5.tar并对其进行了测试。现在一切都好了。