2

我有以下 SQL 查询:

SELECT
    ORDER_ID,
    ORDER_CODE
FROM
    ORDERS
WHERE
    (ORDER_ID,SEQUENCE) in ((?,?))

PreparedStatement statement = connection.prepareStatement(sql)

上面的代码行在 Oracle 中使用上述查询成功生成了一个PreparedStatement对象,但在 Apache Derby 中,它抛出了以下异常:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "," at line 8, column 14.

有人可以解释如何在 DERBY 的 IN 子句中查询多个列。

参考帖子:
http ://apache-database.10148.n7.nabble.com/Using-IN-clause-with-multiple-columns-td98558.html

谢谢!

4

1 回答 1

2

结论:Derby 不支持预准备语句的多个 IN 子句。(?,?) -- 这种语法会引发错误。

转移到 H2 数据库进行测试会更好,因为它可以在那里进行并且更强大。

于 2018-01-22T01:27:26.083 回答