Java 带布尔输入参数的Spring StoredProcess

Java 带布尔输入参数的Spring StoredProcess,java,spring,oracle,jdbc,Java,Spring,Oracle,Jdbc,当需要传递布尔参数时,从java调用plsql是一件棘手的事情,正如Oracle建议的那样,您可以: 例如,要包装使用PL/SQL布尔值的存储过程,需要 可以创建从中获取字符或数字的存储过程 JDBC并将其作为布尔值传递给原始过程,对于 输出参数,接受原始参数中的布尔参数 过程,并将其作为字符或数字传递给JDBC。同样地 包装使用PL/SQL记录的存储过程,可以创建 处理单个组件中的记录的存储过程 (例如CHAR和NUMBER)。包装使用PL/SQL的存储过程 表,您可以将数据分解为组件,或者使

当需要传递布尔参数时,从java调用plsql是一件棘手的事情,正如Oracle建议的那样,您可以:

例如,要包装使用PL/SQL布尔值的存储过程,需要 可以创建从中获取字符或数字的存储过程 JDBC并将其作为布尔值传递给原始过程,对于 输出参数,接受原始参数中的布尔参数 过程,并将其作为字符或数字传递给JDBC。同样地 包装使用PL/SQL记录的存储过程,可以创建 处理单个组件中的记录的存储过程 (例如CHAR和NUMBER)。包装使用PL/SQL的存储过程 表,您可以将数据分解为组件,或者使用Oracle 集合类型


好的,它可以工作,但是如果我必须使用object呢?只传递Types.BOOLEAN会抛出java.sql.SQLException并声明错误的类型。我还需要包装函数吗?

AFAIK Oracle的
布尔值
不是过程用户的类型。您的参数应该是
NUMBER
,在过程调用之前,从app将
布尔值
转换为
0/1
非常简单。在这件事上不要心碎。只要通过0/1,就没有布尔值了oracle@Jaiwo99OracleDB@ArtemBilan中当然有一个布尔类型。该过程的输入参数类型为,它是由另一个开发人员开发的,因此我不能简单地修改接口。我们为它提供了一个包装函数,但我的问题是,当您使用StoredProcedure实现时,是否有一些解决方案。不,您不能将PL/SQL类型填充到SQL表达式中。