MyBatis'teki PL/SQL bloğundan bir değer döndürmem gerekiyor.PL/SQL bloğundan geri dönüş değeri
DECLARE
BEGIN
<foreach collection="params" item="param">
UPDATE PRIORITIES
SET PRIORITY = #{param.priority}
WHERE ID = #{param.id};
</foreach>
END
Bir değer döndürmek için gereken nedeni, ben etkilenen satır sayısını elde edebilmek istiyorum ki:
PL/SQL bloğu
budur. Bunun yerine bu varpublic void updateAll(Map<String, String> parameters);
:
ben böyle yapabileceğini biliyorum:
<update id="updateAll" parameterType="map">
{ call
DECLARE
BEGIN
<foreach collection="params" item="param">
UPDATE PRIORITIES
SET PRIORITY = #{param.priority}
WHERE ID = #{param.id};
</foreach>
#{affected_rows, jdbcType=DECIMAL, mode=OUT} := sql%rowcount;
END
}
</update>
Ama bu java eşleştiricisindeki böyle bir yöntemi olmalıdır demektir
public int updateAll(@Param("params") List<PriorityModel> model);
Bu değeri bir harita olmadan döndürmenin bir yolu var mı?
'sql% rowcount' yalnızca PL/SQL'de kullanılabilir, bu çalışmaz. –
Soru, PL/SQL – maframaran
hakkında, "SQL deyiminde bir PL/SQL bloğunda olsa bile" sql% rowcount "SQL deyiminde kullanılamaz." Örneğin, bu blok işe yaramaz: 'v_number numarasını belirtin; % sql satır öğesini SELECT DUAL; son;/' ' –