0
Я пытаюсь вызвать хранимую процедуру. Хранимая процедура подтверждается испытаниями в базе данных и выполняютсявызов хранимой процедуры из PostgreSQL
CREATE OR REPLACE FUNCTION statapi.pui_src_ter(p_src_ter_id id_t, p_aname name_t, p_adesc desc_t, p_sortord sortord_t)
RETURNS integer AS
$BODY$
DECLARE
afected_rows integer := 0;
BEGIN
update statdwh.src_ter
set aname = p_aname,
adesc = p_adesc,
sortord = p_sortord,
actdt = current_timestamp
where src_ter_id = p_src_ter_id;
get diagnostics afected_rows = row_count;
if (afected_rows = 0) then
insert into statdwh.src_ter(src_ter_id, aname, adesc, sortord, actdt)
values (p_src_ter_id, p_aname, p_adesc, p_sortord, current_timestamp)
returning src_ter_id into p_src_ter_id;
get diagnostics afected_rows = row_count;
end if;
return afected_rows;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION statapi.pui_src_ter(id_t, name_t, desc_t, sortord_t)
OWNER TO postgres;
сам вызов
public void storedProcedureCall() throws ClassNotFoundException, SQLException {
CallableStatement cst = connection.prepareCall("{call statapi.pui_src_ter(?,?,?,?)}");
cst.setInt(1, 11);
cst.setString(2, "aname_att");
cst.setString(3, "adesc_att");
cst.setInt(4, 222);
ResultSet result3 = cst.executeQuery();
while (result3.next()){
System.out.println(result3.getString(1));
}
cst.execute();
}
возвращает «1», как и ожидалось, так как модифицированная одна запись, но в базе данных (просматриваю pgAdmin) запись не отображается Что я делаю неправильно?
Вы совершили сделку? –