Erro PLS-00103 - não sei onde está o erro.

03/02/2009

0

aparece esse erro pra mim... mas não consigo resolver

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

Facc

Responder

Posts

03/02/2009

Facc

Problema resolvido


Responder

12/07/2022

Camila Santos

Problema resolvido


como?
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