Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Danilo Garcia Martins

[Resolvido] Erro na Função

Recommended Posts

Pessoal, sou iniciante ainda em Postgre e preciso resolver um problema e rápido.

 

Nesta função, eu insiro na tab. 'tb_pessoa' os dados comuns, e depois eu verifico se é pessoa física e insiro os dados da P.F. na tabela tb_pessoa_fisica, porêm, o codigo da pessoa gerado é auto incremento ( serial ), então eu tento atribuir o codigo gerado na variável, mas da erro.

 

Se alguem puder me ajudar, por favor !!!

 

Segue o codigo abaixo:

 

CREATE OR REPLACE FUNCTION inserepessoa(
  p_codempresa integer,
  p_pessoa varchar(1),
  p_endereco varchar(100),
  p_numero varchar(10),
  p_apartamento varchar(10),
  p_bairro varchar(100), 
  p_cidade varchar(100),
  p_fone varchar(15),
  p_datacadastro date,
  p_faturamento numeric(18,2),
  p_cep varchar(8),
  p_email varchar(100),
  p_credito numeric(18,2),
  p_caixapostal varchar(10),
  p_ativo boolean,
  p_idtipopessoa integer, 
  p_idstatus integer,
  p_idenderecocobranca integer,
  p_obs varchar(300),
  p_rg varchar(15),
  p_cpf varchar(18)
  ) 
  RETURNS VOID AS
  '
  DECLARE nCODIGO integer;
  BEGIN
    INSERT INTO tb_pessoa(
      codempresa, codigo, pessoa, endereco, numero, apartamento, 
      bairro, cidade, fone, datacadastro, faturamento,
      cep, email, credito, caixapostal, ativo, idtipopessoa,
      idstatus ,idenderecocobranca, obs )
    VALUES( 
       p_codempresa, default ,p_pessoa, p_endereco, p_numero,
       p_apartamento, p_bairro, p_cidade,
       p_fone, p_datacadastro , p_faturamento , p_cep , p_email,
       p_credito, p_caixapostal, p_ativo, p_idtipopessoa,
       p_idstatus , p_idenderecocobranca ,
       p_obs
    );

-->    nCODIGO := new.codigo;  //o erro acontece aqui !

    IF p_pessoa = "F" THEN
       INSERT INTO tb_pessoa_fisica(codempresa, codigo, rg, cpf) 
       VALUES (p_codempresa, nCODIGO, p_rg, p_cpf); 
    END IF;  
    
  END;
  '
  language 'plpgsql';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom Danilo. Parabéns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.