Retorno de chave primária no insert

10/12/2011

0

Bom dia á todos !

Sou iniciante no post e preciso da ajuda de vocês,
Seguinte, criei uma função para inserir dados, mas preciso que ela me retorne o valor do campo chave primária que ele cadastrou.
Segue a function:

CREATE OR REPLACE FUNCTION public.sp_ins_cotacao (
char,
char,
char,
char,
char,
char,
char,
char
)
RETURNS integer AS
$body$
DECLARE
OPCAO ALIAS FOR $1;
DTCAD ALIAS FOR $2;
DTRESP ALIAS FOR $3;
DATAF ALIAS FOR $4;
PROXIM ALIAS FOR $5;
MERCAD ALIAS FOR $6;
TPPROD ALIAS FOR $7;
CODEMP ALIAS FOR $8;
NCOTA ZZ6010%ROWTYPE;
BEGIN
IF opcao = I THEN
INSERT INTO ZZ6010 (ZZ6_DTCAD, ZZ6_DTRESP, ZZ6_DATAF, ZZ6_PROXIM, ZZ6_MERCAD, ZZ6_TPPROD,
ZZ6_CODEMP) values (DTCAD, DTRESP, DATAF, PROXIM, MERCAD, TPPROD, CODEMP);
END IF;
RETURN NCOTA.ZZ6_NCOTA;
END;
$body$
LANGUAGE plpgsql
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;

Esta function está inserindo dados sem problemas, mas retorna NULL. Onde estou errando ?
Marcio Santos

Marcio Santos

Responder

Posts

13/12/2011

Fabiano Abreu

Olá Marcio,

Tente utilizar a função
RETURNING
, creio que lhe auxiliará.

Abraços.

_ _
Fabiano Abreu
Papo Sql - Um blog com tutoriais, dicas e truques sobre SQL
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar