我想使用Mybatis调用Oracle函数,但尝试了不同的方法,但没有得到结果。
请解决我的问题。

 <select id="getNo" resultType="String" parameterType="map" statementType="CALLABLE">
begin
     #{retval, mode=OUT, jdbcType=VARCHAR}  = CALL pc_sys.f_get_no
     (
      #{notyp, mode=IN, jdbcType=VARCHAR},
     #{ymdDate, mode=IN, jdbcType=DATE}
     );
end;
 </select>


错误内容:

begin ? = CALL pc_sys.f_get_no ( ?, ? ); end;
java.sql.SQLException: ORA-06550: line 2, column 10:
PLS-00103: Encountered the symbol "=" when expecting one of the following:
:= . ( @ % ; indicator
; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: line 2, column 10:
PLS-00103: Encountered the symbol "=" when expecting one of the following:
:= . ( @ % ; indicator.

最佳答案

在Java中

void getNo(Map<String,Object> mymap);


在Mapper.xml文件中

    <select id="getNo" resultType="String" parameterType="map" statementType="CALLABLE">
     #{retval, mode=OUT, jdbcType=VARCHAR}  = CALL pc_sys.f_get_no
     (
      #{notyp, mode=IN, jdbcType=VARCHAR},
     #{ymdDate, mode=IN, jdbcType=DATE}
     );
end;
 </select>


使用此代码,我解决了我的问题。

07-24 18:21