我正在使用 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 的各种技巧(例如用户定义类型等),但这就是我们最终得到的结果...
创建 global temporary table包含单个 ID 列(范围仅限于 session - ON COMMIT DELETE ROWS)
开始交易
使用批处理语句将您想要的所有 Id 插入临时表
加入此表即可获取结果,例如...
SELECT * FROM TAB T INNER JOIN MyTempTable X ON T.ID = X.ID
提交时,临时表将被截断
如果您需要在同一事务中执行其中多个操作,请务必先从临时表中删除。
(此外,我们在驱动程序版本和 setArray 等方面遇到了很多问题,因此我们决定这样做)
我是一名优秀的程序员,十分优秀!