Erro de sintaxe PL/pgSQL ao criar uma FUNCTION com INSERT

29/05/2019

0

--Quando tento rodar a função, apresenta o seguinte erro:
--ERROR: erro de sintaxe em ou próximo a ";"
--LINE 129: END;
--SQL state: 42601
--Character: 3341

Alguém saberia me ajudar?


CREATE OR REPLACE FUNCTION dados.fn_insere_flg_status(cod_tipo_identificacao integer)
RETURNS void AS $$

DECLARE

doc character varying;--(100);
cod integer;
identidade character varying;--(20);
pis character varying;--(20);
num_certidao character varying;--(20);
ident_civil character varying;--(20);
num_cert_reservista character varying;--(20);
titulo_eleitor character varying;--(20);
_pis character varying;--(20);

BEGIN

doc := (SELECT vlr_numero_documento FROM corporativo.tb_identificacao_pessoa);
cod := (SELECT cod_tipo_identificacao FROM corporativo.tb_identificacao_pessoa);
identidade := (SELECT identidade FROM dados.db_recadastramento);
pis := (SELECT num_pispasep FROM corporativo.tb_pessoa);
num_certidao := (SELECT num_certidao FROM dados.db_recadastramento);
ident_civil := (SELECT ident_civil FROM dados.db_recadastramento);
num_cert_reservista := (SELECT num_cert_reservista FROM dados.db_recadastramento);
titulo_eleitor := (SELECT titulo_eleitor FROM dados.db_recadastramento);
_pis := (SELECT num_pis_pasep FROM dados.db_recadastramento);

IF (doc IS NULL AND cod = 2)
THEN
INSERT INTO dados.db_recadastramento (flg_identidade)
VALUES (''N'');
--RETURN;
ELSE IF (identidade = doc AND cod = 2)
THEN
INSERT INTO dados.db_recadastramento (flg_identidade)
VALUES (''E'');
--RETURN;
ELSE
INSERT INTO dados.db_recadastramento (flg_identidade)
VALUES (''D'');
--RETURN;

END IF;

IF (pis IS NULL AND cod = 51)
THEN
INSERT INTO dados.db_recadastramento (flg_pis_pasep)
VALUES (''N'');
--RETURN;
ELSE IF (_pis = pis AND cod = 51)
THEN
INSERT INTO dados.db_recadastramento (flg_pis_pasep)
VALUES (''E'');
--RETURN;
ELSE
INSERT INTO dados.db_recadastramento (flg_pis_pasep)
VALUES (''D'');
--RETURN;

END IF;

IF (doc IS NULL AND cod = 5)
THEN
INSERT INTO dados.db_recadastramento (flg_certidao)
VALUES (''N'');
--RETURN;
ELSE IF (_doc = doc AND cod = 5)
THEN
INSERT INTO dados.db_recadastramento (flg_certidao)
VALUES (''E'');
--RETURN;
ELSE
INSERT INTO dados.db_recadastramento (flg_certidao)
VALUES (''D'');
--RETURN;

END IF;

IF (doc IS NULL)
THEN
INSERT INTO dados.db_recadastramento (flg_ident_civil)
VALUES (''N'');
--RETURN;
ELSE IF (_doc = doc)
THEN
INSERT INTO dados.db_recadastramento (flg_ident_civil)
VALUES (''E'');
--RETURN;
ELSE
INSERT INTO dados.db_recadastramento (flg_ident_civil)
VALUES (''D'');
--RETURN;

END IF;

IF (doc IS NULL)
THEN
INSERT INTO dados.db_recadastramento (flg_certificado_reservista)
VALUES (''N'');
--RETURN;
ELSE IF (_doc = doc)
THEN
INSERT INTO dados.db_recadastramento (flg_certificado_reservista)
VALUES (''E'');
--RETURN;
ELSE
INSERT INTO dados.db_recadastramento (flg_certificado_reservista)
VALUES (''D'');
--RETURN;

END IF;

IF (doc IS NULL)
THEN
INSERT INTO dados.db_recadastramento (flg_titulo_eleitor)
VALUES (''N'');
--RETURN;
ELSE IF (_doc = doc)
THEN
INSERT INTO dados.db_recadastramento (flg_titulo_eleitor)
VALUES (''E'');
--RETURN;
ELSE
INSERT INTO dados.db_recadastramento (flg_titulo_eleitor)
VALUES (''D'');
--RETURN;

END IF;
END;
$$ LANGUAGE ''plpgsql''
Larissa Jacobina

Larissa Jacobina

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