1

我想从 exasol 中获取数据,但只有在查询中使用 limit 子句时才会遇到这个问题。

如果我在查询中硬编码限制值并且不使用准备好的语句,那么它可以正常工作。但是当我尝试在准备好的语句中为 limit 子句设置 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.ID\n"
    + "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 子句中需要非负整数值

4

1 回答 1

0

我想,它会以引用的形式添加您的值:LIMIT '0', '2'.

尝试正常构建查询字符串并将其作为简单的非准备查询运行。

于 2019-07-20T19:43:46.840 回答