Informix DB 上的 ROW_NUMBER() 显示不支持 BIGINT
ROW_NUMBER() on informix DB shows BIGINT is not supported
我正在尝试将行号添加到 sql 查询以获得 return 结果集,但 JDBC 不支持它所说的 BIGINT。我查了https://db.apache.org/derby/docs/10.9/ref/rreffuncrownumber.html and https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.jdbc_pg.doc/ids_jdbc_141.htm.
代码:
String query = new StringBuilder("SELECT ROW_NUMBER() OVER() AS id, * FROM "+tableName).toString();
错误:
[Informix JDBC Driver][Informix]The data type bigint is not supported for current client/server configuration.
IBM 的解决方案告诉您在插入后使用 getBigSerial() 来获取 BIGINT。但是,我想找到一种方法能够在查询 table 时添加一些自动递增数字,而无需创建实际列。有办法吗?
您可以在查询中将其转换为 VARCHAR。
如果您将它用于除呈现给客户之外的其他用途,则可以在 Java 代码中将该字符串转换为 BigInteger。
选角不错:
String query = "SELECT CAST(ROW_NUMBER() OVER() AS INT) AS id, * FROM "+tableName;
我用我的 informix 数据库测试它,它可以工作。
我正在尝试将行号添加到 sql 查询以获得 return 结果集,但 JDBC 不支持它所说的 BIGINT。我查了https://db.apache.org/derby/docs/10.9/ref/rreffuncrownumber.html and https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.jdbc_pg.doc/ids_jdbc_141.htm.
代码:
String query = new StringBuilder("SELECT ROW_NUMBER() OVER() AS id, * FROM "+tableName).toString();
错误:
[Informix JDBC Driver][Informix]The data type bigint is not supported for current client/server configuration.
IBM 的解决方案告诉您在插入后使用 getBigSerial() 来获取 BIGINT。但是,我想找到一种方法能够在查询 table 时添加一些自动递增数字,而无需创建实际列。有办法吗?
您可以在查询中将其转换为 VARCHAR。
如果您将它用于除呈现给客户之外的其他用途,则可以在 Java 代码中将该字符串转换为 BigInteger。
选角不错:
String query = "SELECT CAST(ROW_NUMBER() OVER() AS INT) AS id, * FROM "+tableName;
我用我的 informix 数据库测试它,它可以工作。