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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar