Передача логического параметра в хранимую процедуру с Mybatis - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь вызвать Oracle PL / SQL процедуру с Mybatis в проекте Spring. Однако я получаю сообщение об ошибке ниже: Причина: 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}
        )

В чем может быть проблема?

1 Ответ

0 голосов
/ 23 апреля 2020

Я решил проблему, создав новую пользовательскую процедуру-оболочку и объявив в ней логические переменные. Затем я передал эти объявленные переменные моей исходной процедуре. Это решило мою проблему.

Вот ссылка на страницу: (Прочтите часть «Обтекание PL / SQL Типы BOOLEAN, RECORD и TABLE») https://docs.oracle.com/cd/F49540_01/DOC/java.815/a64684/typesup1.htm

...