Erro PLS-00103 - não sei onde está o erro.
03/02/2009
0
aparece esse erro pra mim... mas não consigo resolver
Mensagem de erro:
create or replace procedure SP_INT_CPG_TITULO as /***************************************************************** * PROCEDURE : SP_INT_CPG_TITULO * * OBJETIVO : Le tabela TEMP para gravação da tabela em produção * * CRIAÇÃO : 28/01/2009 10:20:15 * * VERSAO : 1.0 - TESTE * * AUTOR : Fabio Cruz * *****************************************************************/ ------------------------------------------------- -- DECLARACAO DE VARIAVEIS AUXILIARES A TABELA -- ------------------------------------------------- VG_CODFIL numeric(3, 0); VG_TPEMITENTE char(1); VG_CODEMITENTE number(15, 0); VG_NUMTIT number(12, 0); VG_DESDTIT char(3); VG_CODORIGCPG numeric(6, 0); VG_DTEMISSAO DATE; VG_DTVENCTO DATE; VG_CODPORT numeric(6, 0); VG_VLORIG numeric(15, 2); VG_SLDTIT numeric(15, 2); VG_CODIND char(4); VG_STATUS numeric(1, 0); VG_DTENTREGA DATE; VG_FLLIBPAGTO char(1); VG_DTDIGIT DATE; VG_IDENTPROC varchar2(250) := ´SP_INT_CPG_TITULO´; VG_DTALTSALDO DATE; VG_FLUTILTITULO char(1); VG_OBS VARCHAR2(255); ---------------------------------------------------- -- DECALARAO DE VARIAVEIS P/ CONTROLE DO PROCESSO -- ---------------------------------------------------- STATUS_ERRO NUMBER(1) := 1; STATUS_OK NUMBER(1) := 2; ------------------------------------------- -- DECLARACAO DE PARAMETROS DA PROCEDURE -- ------------------------------------------- VG_PROCESSO VARCHAR2(50) := ´SP_INT_CPG_TITULO´; VG_ID_LOG VARCHAR2(10) := ´CPGTITULO´; VG_NOME_ARQ_LOG VARCHAR2(50) := ´CPGTITULO´ || TO_CHAR(SYSDATE, ´_DDMMYY_HH24MI´) || ´.LOG´; ------------------------------------ -- DECLARACAO DO CURSOR PRINCIPAL -- ------------------------------------ CURSOR TITULO IS SELECT CODFIL, TPEMITENTE, CODEMITENTE, NUMTIT, DESDTIT, CODORIGCPG, DTEMISSAO, DTVENCTO, CODPORT, VLORIG, VLORIGIND, SLDTIT, SLDTITIND, CODIND, STATUS, DTENTREGA, FLLIBPAGTO, DTDIGIT, IDENTPROC, DTALTSALDO, FLUTILTITULO FROM INT_CPG_TITULO WHERE COALESCE(STATUS_INT, 0) = 0; begin BEGIN ------------------------------- -- INICIALIZA ARQUIVO DE LOG -- ------------------------------- SP_GEMCO_GERA_LOG(´INICIO DO LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, NULL, VG_PROCESSO, 0, 0, 0); SP_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, ´INICIO DO LOG´, VG_PROCESSO, 0, 0, 0); --------------------------------------- -- PROCESSAMENTO DO CURSOR PRINCIPAL -- --------------------------------------- FOR CUR IN TITULO LOOP VG_ERRO := ´N´; VG_REG_LIDOS := NVL(VG_REG_LIDOS, 0) + 1; VG_NOVO_REG := 0; ---------------------------------------------------- -- VERIFICA SE EXISTE NAS TABELAS CORRESPONDENTES -- ---------------------------------------------------- BEGIN IF VG_TPEMITENTE = ´2´ THEN SELECT CODFORNE INTO CUR.CODEMITENTE FROM CAD_FORNE WHERE CODFORNE = CUR.CODEMITENTE; ELSIF VG_TPEMITENTE = ´3´ THEN SELECT CODTRANSP INTO CUR.CODEMITENTE FROM CAD_TRANSPORTADORA WHERE CODTRANSP = CUR.CODEMITENTE; ELSIF VG_TPEMITENTE = ´4´ THEN SELECT CODCLI INTO CUR.CODEMITENTE FROM CAD_CLIENTE WHERE CODCLI = CUR.CODEMITENTE; ELSIF VG_TPEMITENTE = ´5´ THEN SELECT CODCON INTO CUR.CODEMITENTE FROM CXA_CADCON WHERE CODCON = CUR.CODEMITENTE; ELSIF VG_TPEMITENTE = ´3´ THEN SELECT CODTRANSP INTO CUR.CODEMITENTE FROM CAD_TRANSPORTADORA WHERE CODTRANSP = CUR.CODEMITENTE; ELSE -- TPEMITENTE = ´6´ SELECT CODPOR INTO CUR.CODEMITENTE FROM CAD_PORTADOR WHERE CODPOR = CUR.CODEMITENTE; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN VG_ERRO := ´S´; VG_ERRO_INT := ´ TIPO DO EMITENTE NAO CADASTRADO ´ || CUR.CODEMITENTE; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); GOTO GRAVA_STATUS; WHEN TOO_MANY_ROWS THEN VG_ERRO := ´S´; VG_ERRO_INT := ´MAIS DE UM TIPO DE EMITENTE PARA O MESMO CODIGO´ || CUR.CODEMITENTE; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); GOTO GRAVA_STATUS; WHEN OTHERS THEN VG_ERRO := ´S´; VG_ERRO_INT := ´OCORREU OUTRO TIPO DE ERRO NAO TRATADO ´ || CUR.CODEMITENTE; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); GOTO GRAVA_STATUS; END; ----------------------------------------------- -- PESQUISA NA CPG_ORIGEM SE ESTA CADASTRADO -- ----------------------------------------------- BEGIN SELECT CODORIGCPG INTO CUR.CODORIGCPG FROM CPG_ORIGEM WHERE CODORIGCPG = CUR.CODORIGCPG; EXCEPTION WHEN NO_DATA_FOUND THEN VG_ERRO := ´S´; VG_ERRO_INT := ´CODORIGCPG NAO CADASTRADO NA TABELA CPG_ORIGEM - ´ || CUR.CODORIGCPG; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); GOTO GRAVA_STATUS; END; ------------------------------------------------- -- PESQUISA NA CRC_PORTADOR SE ESTA CADASTRADO -- ------------------------------------------------- BEGIN SELECT CODPORT INTO CUR.CODPORT FROM CRC_PORTADOR WHERE CODPORT = CUR.CODPORT; EXCEPTION WHEN NO_DATA_FOUND THEN VG_ERRO := ´S´; VG_ERRO_INT := ´CODPORT NAO CADASTRADO NA TABELA CRC_PORTADOR - ´ || CUR.CODPORT; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); GOTO GRAVA_STATUS; END; ----------------------------------------------- -- PESQUISA NA CAD_FILIAL SE ESTA CADASTRADO -- ----------------------------------------------- BEGIN SELECT CODFIL INTO CUR.CODFIL FROM CAD_FILIAL WHERE CODFIL = CUR.CODFIL; EXCEPTION WHEN NO_DATA_FOUND THEN VG_ERRO := ´S´; VG_ERRO_INT := ´CODFIL NAO CADASTRADO NA TABELA CAD_FILIAL - ´ || CUR.CODFIL; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); GOTO GRAVA_STATUS; END; -------------------------------------------------- -- PESQUISA NA CPG_TITULO SE JA ESTA CADASTRADO -- -------------------------------------------------- BEGIN SELECT NUMTIT INTO CUR.NUMTIT FROM CPG_TITULO WHERE NUMTIT = CUR.NUMTIT AND DESDTIT = CUR.DESDTIT AND TPEMITENTE = CUR.TPEMITENTE AND CODEMITENTE = CUR.CODEMITENTE AND CODORIGCPG = CUR.CODORIGCPG AND CODFIL = CUR.CODFIL; EXCEPTION WHEN DATA_FOUND THEN VG_ERRO := ´S´; VG_ERRO_INT := ´ERRO AO TENTAR INCLUIR REGISTRO COM CHAVE DUPLICADA - ´ || CUR.NUMTIT; GOTO GRAVA_STATUS; END; --------------------------------- -- INCLUI TITULO NA CPG_TITULO -- --------------------------------- BEGIN INSERT INTO CPG_TITULO (CODFIL, TPEMITENTE, CODEMITENTE, NUMTIT, DESDTIT, CODORIGCPG, DTEMISSAO, DTVENCTO, CODPORT, VLORIG, SLDTIT, CODIND, STATUS, DTENTREGA, FLLIBPAGTO, DTDIGIT, IDENTPROC, DTALTSALDO, FLUTILTITULO, OBS) VALUES (VG_CODFIL, VG_TPEMITENTE, VG_CODEMITENTE, VG_NUMTIT, VG_DESDTIT, VG_CODORIGCPG, VG_DTEMISSAO, VG_DTVENCTO, VG_CODPORT, VG_VLORIG, VG_SLDTIT, VG_CODIND, VG_STATUS, VG_DTENTREGA, VG_FLLIBPAGTO, VG_DTDIGIT, VG_IDENTPROC, VG_DTALTSALDO, VG_FLUTILTITULO, VG_OBS); VG_REG_INSERIDOS := NVL(VG_REG_INSERIDOS, 0) + 1; commit; EXCEPTION WHEN OTHERS THEN VG_ERRO := ´S´; VG_ERRO_INT := ´ERRO NO INSERT GEMCO: ´ || SQLERRM; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); rollback; GOTO GRAVA_STATUS; END; ----------------------------------------- -- CARIMBA ERRO NO REGISTRO PROCESSADO -- ----------------------------------------- <<GRAVA_STATUS>> IF VG_ERRO = ´S´ THEN BEGIN VG_STATUS_INT := STATUS_ERRO; UPDATE INT_CPG_TITULO SET ERRO_INT = VG_ERRO_INT, STATUS_INT = VG_STATUS_INT, DT_INT = SYSDATE WHERE ROWID = CUR.ROWID; EXCEPTION WHEN OTHERS THEN VG_ERRO := ´S´; VG_STATUS_INT := STATUS_ERRO; VG_ERRO_INT := ´ERRO NO UPDATE DA INT_CPG_TITULO: ´ || SQLERRM; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); END; VG_REG_REJEITADOS := NVL(VG_REG_REJEITADOS, 0) + 1; ELSE --------------------------------- -- CARIMBA SUCESSO NO REGISTRO -- --------------------------------- BEGIN VG_STATUS_INT := STATUS_OK; VG_ERRO_INT := ´REGISTRO PROCESSADO COM SUCESSO.´; UPDATE INT_CPG_TITULO SET ERRO_INT = VG_ERRO_INT, STATUS_INT = VG_STATUS_INT, DT_INT = SYSDATE WHERE ROWID = CUR.ROWID; VG_REG_ACEITOS := NVL(VG_REG_ACEITOS, 0) + 1; EXCEPTION WHEN OTHERS THEN VG_ERRO := ´S´; VG_STATUS_INT := STATUS_ERRO; VG_ERRO_INT := ´ERRO NO UPDATE DA INT_CPG_TITULO: ´ || SQLERRM; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); END; END IF; END LOOP; <<DESVIO>> --------------------------------- -- INSERE TOTALIZADORES NO LOG -- --------------------------------- VG_ERRO_INT := ´-------------------------------------------------------------------´; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); VG_ERRO_INT := ´TOTAL DE REGISTROS LIDOS : ´ || LPAD(TO_CHAR(VG_REG_LIDOS), 9, ´ ´); SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); VG_ERRO_INT := ´TOTAL DE REGISTROS ACEITOS : ´ || LPAD(TO_CHAR(VG_REG_ACEITOS), 9, ´ ´) || ´ ...NOVOS(´ || VG_REG_INSERIDOS || ´) ALTERADOS(´ || VG_REG_ATUALIZADOS || ´)´; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); VG_ERRO_INT := ´TOTAL DE REGISTROS REJEITADOS: ´ || LPAD(TO_CHAR(VG_REG_REJEITADOS), 9, ´ ´); SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); VG_ERRO_INT := ´-------------------------------------------------------------------´; SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, VG_ERRO_INT, VG_PROCESSO, 0, 0, 0); ------------------ -- FINALIZA LOG -- ------------------ SP_INT_GEMCO_GERA_LOG(´GERA LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, ´FIM DO LOG´, VG_PROCESSO, 0, 0, 0); SP_INT_GEMCO_GERA_LOG(´FIM LOG´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, NULL, VG_PROCESSO, 0, 0, 0); SP_INT_GEMCO_GERA_LOG(´TRANSFERE LOG PARA TABELA ORACLE´, VG_DIR_LOG, VG_ID_LOG, VG_NOME_ARQ_LOG, SYSDATE, NULL, VG_PROCESSO, VG_REG_LIDOS, VG_REG_ACEITOS, VG_REG_REJEITADOS); close titulo; EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20000, ´ERRO NO LOOP: ´ || SQLERRM); close titulo; end SP_INT_CPG_TITULO;
Mensagem de erro:
Compilation errors for PROCEDURE GEMCO.SP_INT_CPG_TITULO
Error: PLS-00103: Encountered the symbol ´end-of-file´ when expecting one of the following:
begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<um identificador>
<um identificador delimitado por aspas duplas>
<uma variável de ligação> << close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe
Line: 548
Facc
Curtir tópico
+ 0
Responder
Posts
Clique aqui para fazer login e interagir na Comunidade :)