informix DB上的ROW_NUMBER()显示不支持BIGINT

时间:2016-09-15 20:37:17

标签: java jdbc informix

我正在尝试向sql查询添加行号以获取返回结果集,但是JDBC表示不支持BIGINT。我查找了https://db.apache.org/derby/docs/10.9/ref/rreffuncrownumber.htmlhttps://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]当前客户端/服务器配置不支持数据类型bigint。

IBM解决方案告诉您在插入后使用getBigSerial()来获取BIGINT。但是,我想找到一种方法,可以在查询表时添加一些自动增量数而不创建实际列。有办法吗?

2 个答案:

答案 0 :(得分:1)

您可以在查询中将其强制转换为VARCHAR。

如果您将该字符串用于将其用于客户端以外的其他内容,则可以将该字符串转换为Java代码中的BigInteger。

答案 1 :(得分:0)

施法很好:

String query = "SELECT CAST(ROW_NUMBER() OVER() AS INT) AS id, * FROM "+tableName;

我用我的informix数据库测试它并且它可以工作。