Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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';Carregando comentários...