【发布时间】:2020-04-23 09:10:46
【问题描述】:
我试图在 Spring 项目中使用 Mybatis 调用 Oracle PL/SQL 过程。但是我收到以下错误: 原因:java.sql.SQLException: ORA-06553: PLS-306: 调用中的参数数量或类型错误
问题在于布尔参数,因为当我删除它时它运行良好。 (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}
)
可能是什么问题?
【问题讨论】:
-
在您的示例中,您缺少 process_now 参数前面的
#。 -
我在这里复制粘贴时错过了它。代码中,#没有问题
-
打开日志并查看准备好的 SQL 语句可能会有所帮助。
标签: java spring plsql mybatis spring-mybatis