簡體   English   中英

使用 Mybatis 將 boolean 參數傳遞給存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM