0
以下の手順を実行します。実行すると、すべての挿入がコンソールに表示され、フィールドind_idは増加しますがレコードは保存されません。関数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;
誰かが私を助けてくれますか?
「INSERT」ステートメントはレコードを挿入しないと言っていますか? 'RAISE NOTICE'から' INFO'メッセージを受け取りますか?エラーが発生しますか?はいの場合、 'INSERT'はおそらくロールバックされますか?どのようなエラーが出ますか?また、 'RETURN tra_descripcion'は、その名前の変数が定義されていないので、エラーを引き起こすはずです。 –
tra_descriptionはテキストタイプの出力であるため、エラーは発生しません。注意:tab_indexpediente(uni_id、ser_id、tra_id)の値(13,269,17)に挿入してください。 、 –
しかし、 'tra_descripcion'はどこにも宣言されていません。 –