我正在尝试向sql查询添加行号以获取返回结果集,但是JDBC表示不支持BIGINT。我查找了https://db.apache.org/derby/docs/10.9/ref/rreffuncrownumber.html和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]当前客户端/服务器配置不支持数据类型bigint。
IBM解决方案告诉您在插入后使用getBigSerial()来获取BIGINT。但是,我想找到一种方法,可以在查询表时添加一些自动增量数而不创建实际列。有办法吗?
答案 0 :(得分:1)
您可以在查询中将其强制转换为VARCHAR。
如果您将该字符串用于将其用于客户端以外的其他内容,则可以将该字符串转换为Java代码中的BigInteger。
答案 1 :(得分:0)
施法很好:
String query = "SELECT CAST(ROW_NUMBER() OVER() AS INT) AS id, * FROM "+tableName;
我用我的informix数据库测试它并且它可以工作。