Pessoal,

Desculpa vir a lista para fazer este pedido, mas tenho uma procedure em
Oracle e preciso converter ela para Postgresql.
Postgresql é uma linguagem que conheço pouco, estou usando o que já conheço
de banco de dados (outros), para este novo projeto (que tem um responsavel
para configura ele no servidor).

Se não for abusar demais, conto com a compreensão e ajuda, se estou fazendo
algo errado por favor desconsiderar a mensagem.

Esta é a procedure em oracle (esta procedure está dentro de uma package no
oracle, por isto ela não começa com create or replace):
 --==========================
 -- Insere / Atualiza dados do modulo
 --==========================
 --==========================
procedure SP_ATUALIZA_MODULO(n_id_modulo in MODULO.ID_MODULO%TYPE,
                                vc2_nom_modulo in MODULO.NOM_MODULO%TYPE,
                                vc2_desc_modulo in MODULO.DES_MODULO%TYPE,
                                n_erro out INTEGER,
                                vc2_msg_erro out varchar2)
  is
      n_tem_modulo INTEGER;
  begin
      n_erro := 0; -- Modulo cadastrado com sucesso

      -- Novo modulo
      if (n_id_modulo= 0) then

                 insert into MODULO (NOM_MODULO,
                                     DES_MODULO)
                              values (vc2_nom_modulo,
                                     vc2_desc_modulo);

      -- Altera dados do modulo
      else

             select count(*)
               into n_tem_modulo
               from MODULO
              where ID_MODULO      != n_id_modulo;

             if (n_tem_modulo = 0) then

                 update MODULO
                    set NOM_MODULO   = vc2_nom_modulo,
                          DES_MODULO = vc2_desc_modulo
                  where ID_MODULO    = n_id_modulo;

                 n_erro := 3; -- Modulo atualizado com sucesso

             else

                 n_erro := 2; -- Modulo ja existe

             end if;

      end if;

      commit;

      exception
      when others then
           rollback;
           NULL;
           n_erro := sqlcode; -- Erro ao cadastrar o modulo
           vc2_msg_erro := sqlerrm;

  END SP_ATUALIZA_MODULO;


Desde já grato.

-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a