Scala传递数组作为Postgres jdbc sql语句的参数

问题描述 投票:0回答:1

我正在尝试使用下面的代码将数组传递给SQL查询的准备好的语句

val arr = Array("id1", "id2", "id3")
val sqlArr = connection.createArrayOf("varchar", arr.toArray)
stmt.setArray(1, sqlArr)
stmt.executeQuery()

我遇到此错误,

ERROR: operator does not exist: character varying = character varying[]
  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.

我正在使用的sql查询

select col1, col2 from someTable where col3 in (?) and col4 != 'no';

我还尝试将参数类型更改为VARCHARtext

当我打印准备好的语句时,它看起来像这样。

select col1, col2 from someTable where col3 in ('{"id1", "id2", "id3"}') and col4 != 'no';

我在如何进行上遇到麻烦,将不胜感激

我正在使用scala 2.12

scala playframework postgresql-9.1
1个回答
0
投票

在SQL查询中将in更改为any =对我来说很有效。

© www.soinside.com 2019 - 2024. All rights reserved.