gpt4 book ai didi

java - 使用 Mybatis 将 boolean 参数传递给存储过程

转载 作者:行者123 更新时间:2023-12-01 17:16:08 25 4
gpt4 key购买 nike

我正在尝试在 Spring 项目中使用 Mybatis 调用 Oracle PL/SQL 过程。但是我收到以下错误:由以下原因引起:java.sql.SQLException:ORA-06553:PLS-306:调用中的参数数量或类型错误

问题出在 boolean 参数上,因为当我删除它时它工作得很好。 (process_now 参数在过程中是可选的)当我使用 SQL Developer 调用存储过程时,该存储过程运行良好。

 <select id="processUser" statementType="CALLABLE" parameterType="UserResult">
CALL myprocedure(
user_id => #{userId, jdbcType=NUMERIC, mode=IN},
description => #{description, jdbcType=VARCHAR, mode=IN},
process_now => #{processNow, jdbcType=BOOLEAN, mode=IN},
response => #{response, jdbcType=NUMERIC, mode=OUT}
)

可能是什么问题?

最佳答案

我通过创建新的自定义包装程序并在其中声明 boolean 变量来解决这个问题。然后我将这些声明的变量传递给我的原始过程。这解决了我的问题。

这里是页面链接:(阅读“包装 PL/SQL BOOLEAN、RECORD 和 TABLE 类型”部分) https://docs.oracle.com/cd/F49540_01/DOC/java.815/a64684/typesup1.htm

关于java - 使用 Mybatis 将 boolean 参数传递给存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61383454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com