我在oracle中有这个功能:
CREATE or replace FUNCTION rmc_getPublicaciones (yearr IN number)
RETURN publicacionisi%ROWTYPE
IS
publtotal publicacionisi%ROWTYPE;
BEGIN
SELECT * into publtotal
FROM publicacionisi p where p.py = yearr;
RETURN publtotal;
END;
我希望从mybatis调用它并将结果放在resultmap
中<select id="getAllPublicaciones" parameterType="int" statementType="CALLABLE" resultMap="resMapPublicacionIsi" useCache="false">
select desa.rmc_getPublicaciones(#{py}) from dual
</select>
我应该怎么做才能使这项工作?
我也可以这样做
select * from publicacionisi p where p.py={#py}
但我想知道在数据库中的函数中执行此操作是否存在一些差异。
答案 0 :(得分:1)
对我来说,旧的iBatis调用函数的方式仍然有效,尽管XML标签有所改变:
地图(在这种情况下可能应该换成parameterType
,但我没有测试过):
<parameterMap id="getAllPublicacionesParams" type="map">
<parameter property="property_name" jdbcType="NUMERIC" javaType="int" mode="IN"/>
</parameterMap>
呼叫:
<select id="getAllPublicaciones" parameterMap="getAllPublicacionesParams" statementType="CALLABLE">
{ ? = call desa.rmc_getPublicaciones(?) }
</select>