【问题标题】:Select where id = array (Oracle JDBC)选择其中 id = 数组 (Oracle JDBC)
【发布时间】:2017-08-28 08:01:05
【问题描述】:

我目前正在尝试将 Oracle(A VARCHAR2) 中的 ID 与我作为输入的 ID 数组进行比较。

这就是我想做的:

Select user, city where id = :arrayOfIds

在带有 JDBC 的 Postgres 中,我会使用:

Select user, city where id = any(:arrayOfIds)

Oracle 中是否有等效的功能,或者有办法做到这一点?

【问题讨论】:

    标签: sql oracle jdbc


    【解决方案1】:

    你应该使用:

    Select user, city where id in (:arrayOfIds)
    

    在您的代码中,您需要将数组转换为带有 ids 的字符串:

    arrayOfIds[0] --> 1
    arrayOfIds[1] --> 3
    arrayOfIds[2] --> 5
    

    ... 在

    1, 3, 5, ...
    

    你可以使用:

    Array array = conn.createArrayOf("arrayOfIds", new Object[]{"1", "2","3"});
    pstmt.setArray(1, array);
    

    How to use an arraylist as a prepared statement parameter

    【讨论】:

    • Oracle JDBC 驱动不支持createArrayOf()
    猜你喜欢
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    相关资源
    最近更新 更多