我无法将 NULL 值传递给需要 Array 类型的 JDBC 存储函数(使用可调用语句)。如果我试图将 IN 参数设置为 NULL,这只是一个问题(例如,我可以创建并传递一个空数组,但我不应该这样做)。
例如,我可以将其作为解决方法:
callableStatement.setObject(index, callableStatement.getConnection.createArrayOf("numeric", Array().asInstanceOf[Array[AnyRef]]))
但这让我很困扰。首先,应该有一个用于传递 NULL 数组的 API。其次,我无缘无故地创建了一个空数组(我必须创建正确的数组类型,所以这不是单行的,我需要支持几种不同的类型)。它变得混乱。
我认为我应该能够做到这一点(或者至少是非常相似的东西):
callableStatement.setNull(index, Types.ARRAY)
但这会导致异常:
com.edb.util.PSQLException:错误:函数 app_fetch_user_list_pkg.n_execute(字符变化,字符变化 [],字符变化,布尔值,整数)不存在
有任何想法吗?(我们正在使用 Postgresql/EDB 以及 Oracle ......到目前为止,我一直在尝试使用 Postgresql 实例)。