其中一个主要要求是不要重复编译查询。因此,我们需要使用一个准备好的语句,因为它将从spring Boot 应用程序中调用。 比如:select * from table where form_id in (?) 我想取代?我会从另一个服务商那里得到一份名单。我使用的是Oracle JDBC驱动程序。 我尝试使用connection.createArrayOf(..),但这不起作用,并给予不支持的功能错误。
你必须打开你的连接以拥有一个OracleConnection并调用createARRAY,这需要传递数组的SQL类型:例如,CREATE TYPE STRING_TAB IS TYPE OF VARCHAR2(...),则传递“STRING_TAB”,在这种情况下,第二个参数将是String[],SQL语句上的IN表达式应为“IN(SELECT * FROM TABLE(?))"。也可以使用SYS.ODCIxxx类型。可以使用stmt.setArray()指定参数。
1条答案
按热度按时间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()指定参数。