[英]Passing boolean parameter to stored procedure with Mybatis
我試圖在 Spring 項目中使用 Mybatis 調用 Oracle PL/SQL 過程。 但是我遇到以下錯誤:引起:java.sql.SQLException: ORA-06553: PLS-306: arguments 的數量或類型錯誤
問題在於 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 變量解決了這個問題。 然后我將這些聲明的變量傳遞給我的原始程序。 這解決了我的問題。
Here is the link to page: (Read 'Wrapping PL/SQL BOOLEAN, RECORD, and TABLE Types' part) https://docs.oracle.com/cd/F49540_01/DOC/java.815/a64684/typesup1.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.