我想从exasol获取数据,但只有在查询中使用限制子句时才会遇到这个问题。
如果我在查询中对限制值进行硬编码并且不使用预准备语句,那么它可以正常工作。但是当我尝试在准备好的语句中为 int 的限制子句设置 int 时,它会给我例外
public static final String FROM_DWB_DATA = "SELECT * FROM DWB_DATA a n"
+ "INNER JOIN DWB_CONN b n"
+ "ON a.SOURCE_ID=b.IDn"
+ "WHERE b.PROJECT_ID=? ORDER BY a.TABLE_NAME LIMIT ? , ?";
//and in Prepared statement i am setting these values
PreparedStatement ps = getSQLConnection(projectId, conid)
.prepareStatement(FROM_DWB_DATA_TABLE);
ps.setString(1, projectId);
ps.setInt(2, 0);
ps.setInt(3, 2);
java.sql.SQLException:LIMIT 子句中预期的非负整数值
我想,它以引号形式添加您的值:LIMIT '0', '2'
.
尝试正常构建查询字符串并将其作为简单的非准备查询运行。