oracle 将多个未知数量的参数传递给选择查询的IN子句的最有效方法是什么?

ipakzgxi  于 2023-06-29  发布在  Oracle
关注(0)|答案(1)|浏览(156)

其中一个主要要求是不要重复编译查询。因此,我们需要使用一个准备好的语句,因为它将从spring Boot 应用程序中调用。
比如:select * from table where form_id in (?)
我想取代?我会从另一个服务商那里得到一份名单。我使用的是Oracle JDBC驱动程序。
我尝试使用connection.createArrayOf(..),但这不起作用,并给予不支持的功能错误。

xqk2d5yq

xqk2d5yq1#

你必须打开你的连接以拥有一个OracleConnection并调用createARRAY,这需要传递数组的SQL类型:例如,CREATE TYPE STRING_TAB IS TYPE OF VARCHAR2(...),则传递“STRING_TAB”,在这种情况下,第二个参数将是String[],SQL语句上的IN表达式应为“IN(SELECT * FROM TABLE(?))"。也可以使用SYS.ODCIxxx类型。可以使用stmt.setArray()指定参数。

相关问题