我想使用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>
使用此代码,我解决了我的问题。