0
Ich habe die folgende Prozedur, wenn ich es alle Anzeigen in der Konsole zeigt, wird das Feld ind_id erhöht, aber speichert keinen Datensatz.einfügen in nicht funktionieren in postgresql
create or replace function renameDescripcionTramite() returns varchar as $$
declare
aguja record;
pajar record;
last_id integer;
begin
for aguja in
select trim(t.tra_descripcion) tra_descripcion from tab_tramite t
join tab_serietramite st on st.tra_id = t.tra_id
group by t.tra_descripcion
order by t.tra_descripcion loop
for pajar in
select u.uni_id,s.ser_id,st.sts_id,t.tra_id,trim(t.tra_descripcion) tra_descripcion
from tab_unidad u join tab_series s on u.uni_id = s.uni_id
join tab_serietramite st on st.ser_id = s.ser_id
join tab_tramite t on t.tra_id = st.tra_id
order by u.uni_id,s.ser_id,t.tra_id loop
if aguja.tra_descripcion = pajar.tra_descripcion then
insert into tab_indexpediente (uni_id,ser_id,tra_id) values (pajar.uni_id,pajar.ser_id,pajar.tra_id);-- returning ind_id into last_id;
--update tab_serietramite set wid = last_id where sts_id = pajar.sts_id;
RAISE NOTICE 'insert into tab_indexpediente (uni_id,ser_id,tra_id) values (%',cast(pajar.uni_id as text)
|| ',' || cast(pajar.ser_id as text) || ',' || cast(pajar.tra_id as text) || ')';
end if;
end loop;
--RAISE NOTICE ' ANTERIOR ES %',aguja;
end loop;
return tra_descripcion;
end;
$$ LANGUAGE plpgsql;
Kann mir bitte jemand helfen?
Wollen Sie sagen, dass die 'INSERT'-Anweisung keinen Datensatz einfügt? Erhalten Sie die 'INFO'-Nachricht von' RAISE NOTICE'? Erhalten Sie einen Fehler (wenn ja, dann wird der 'INSERT' wahrscheinlich zurückgesetzt)? Welchen Fehler bekommst du? Außerdem sollte 'RETURN tra_descripcion' einen Fehler verursachen, da keine Variable dieses Namens definiert ist. –
tra_description verursacht keinen Fehler, da es nur eine Ausgabe vom Texttyp ist, die Anzeige zeigt den HINWEIS: HINWEIS: Einfügen in tab_indexpediente (uni_id, ser_id, tra_id) Werte (13,269,17), Es scheint alles läuft perfekt , –
Aber 'tra_descripcion' ist nirgendwo deklariert. –