gpt4 book ai didi

java - PreparedStatement 中的 IN 子句

转载 作者:太空宇宙 更新时间:2023-11-04 14:11:54 24 4
gpt4 key购买 nike

我正在使用 ojdbc6 jar,并且我想在PreparedStatement 中使用 In 子句。

我使用了连接对象的 createArrayOf(String,ArrayOfString) 方法。

我收到一个错误,指出“功能不受支持”

我已经检查了该方法的实现中的PhysicalConnection类是

public Array createArrayOf(String s, Object aobj[]) throws SQLException {
SQLException sqlexception = DatabaseError.createUnsupportedFeatureSqlException();
sqlexception.fillInStackTrace();
throw sqlexception;
}

我已经检查了 ojdbc14.jar 中是否有此方法。在该 .jar 文件中,未定义此方法。

请帮帮我,我必须使用哪个 jar ?我想在PreparedStatement中实现In子句功能。

最佳答案

所以你想做一些类似的事情......

SELECT * FROM TAB WHERE ID IN ?

我过去也遇到过类似的问题,并尝试了 JDBC 和 Oracle 的各种技巧(例如用户定义类型等),但这就是我们最终得到的结果...

  1. 创建 global temporary table包含单个 ID 列(范围仅限于 session - ON COMMIT DELETE ROWS)

  2. 开始交易

  3. 使用批处理语句将您想要的所有 Id 插入临时表

  4. 加入此表即可获取结果,例如...

    SELECT * FROM TAB T INNER JOIN MyTempTable X ON T.ID = X.ID

  5. 提交时,临时表将被截断

如果您需要在同一事务中执行其中多个操作,请务必先从临时表中删除。

(此外,我们在驱动程序版本和 setArray 等方面遇到了很多问题,因此我们决定这样做)

关于java - PreparedStatement 中的 IN 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com