2017-05-15 3 views
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; 

誰かが私を助けてくれますか?

+1

「INSERT」ステートメントはレコードを挿入しないと言っていますか? 'RAISE NOTICE'から' INFO'メッセージを受け取りますか?エラーが発生しますか?はいの場合、 'INSERT'はおそらくロールバックされますか?どのようなエラーが出ますか?また、 'RETURN tra_descripcion'は、その名前の変数が定義されていないので、エラーを引き起こすはずです。 –

+0

tra_descriptionはテキストタイプの出力であるため、エラーは発生しません。注意:tab_indexpediente(uni_id、ser_id、tra_id)の値(13,269,17)に挿入してください。 、 –

+1

しかし、 'tra_descripcion'はどこにも宣言されていません。 –

答えて

0

はい、私はこれが手順に影響するかどうかわかりませんでした。

ありがとうございましたlaurenz Albe

関連する問題