如何在mybatis中调用oracle函数

时间:2016-02-03 10:13:58

标签: java oracle mybatis

我想使用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.

1 个答案:

答案 0 :(得分:1)

在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>

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