Ir para conteúdo
Fórum Script Brasil
  • 0

Erros que não Consigo Identificar


fabio.nascimento

Pergunta

Pessoal,

Boa tarde, primeiramente gostaria de salientar que sou novato em banco de dados, estou aprendendo bastante e pra variar me apaixonando.

Não possuo experiencia suficiente para decifrar as mensagens de erros emitidas pelo oracle, dessa forma solicito a ajuda dos companheitos.

Obs: Acredito que meu erro se resuma a Begins e Ends da vida, mas ainda apanho no que diz respeito a inicio e fim de bloco de execução.

Segue abaixo minha procedure + erro relatado.


CREATE OR REPLACE PROCEDURE SP_REL_TAREFA4( P_DATA IN DATE ) 

AS 

CURSOR ENTRADA_RECLAMACAO ( P_DATA IN DATE ) IS 

  -- Fila de reclamacao 
  SELECT IDENTIFICACAO, DESCRICAO, COD_DESCRICAO, QUANTIDADE 
  FROM 
  ( 
  SELECT '1' IDENTIFICACAO, 
         RTRIM(TTR.VARDSCTIPORECLAMACAO) DESCRICAO, 
         TTR.NUMIDTIPORECLAMACAO, 
         COUNT  (TP.NUMIDPROCESSO) QUANTIDADE 
  FROM   TBPROCESSOS TP, 
         TBPROCESSOSRECLAMACAO TPR, 
         TBTIPORECLAMACAO TTR 
  WHERE  TP.NUMIDPROCESSO = TPR.NUMIDPROCESSO 
  AND    TPR.NUMIDTIPORECLAMACAO = TTR.NUMIDTIPORECLAMACAO 
  AND    TP.FLGTIPOPROCESSO = 'R' 
  AND    TP.DATABERTURA >= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 1))),'DD/MM/YYYY')||' 00:00:00','DD/MM/YYYY HH24:MI:SS') 
  AND    TP.DATABERTURA <= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 2))),'DD/MM/YYYY')||' 23:59:59','DD/MM/YYYY HH24:MI:SS') 
  GROUP BY TTR.VARDSCTIPORECLAMACAO 
  ); 


  E ENTRADA_RECLAMACAO%ROWTYPE; 

  P_PROCESSOS_DESCRICAO          VARCHAR2(200); 
  P_PROCESSOS_DESCRICAO_COD   NUMBER; 
  P_PROCESSOS_TOT             NUMBER; 
  P_IDENTIFICACAO             VARCHAR2(1);  
  --P_PROCESSOS_PRODUTO         VARCHAR2(200); 
  --P_PROCESSOS_PRODUTOQTD      NUMBER; 
  
  FILE_PATH         VARCHAR2(100) := '/spa/relatorios'; 
  FILE_HANDLE        UTL_FILE.FILE_TYPE; 
  W_LINHA           VARCHAR2(300); 
  W_TRACO0          VARCHAR2(170) := LPAD ( ' ', 170, ' ' ); 
  W_TRACO1          VARCHAR2(170) := LPAD ( ' ', 170, '-' ); 
  W_TRACO2          VARCHAR2(170) := LPAD ( ' ', 170, '=' );      
  W_CONTACARACTER   NUMBER; 

  
  
BEGIN 

  W_CONTACARACTER             :=0; 
  
  FILE_HANDLE := UTL_FILE.FOPEN ( FILE_PATH, 'REL_TAREFA4.TXT', 'w' ); 
  W_LINHA := 'Relatorio consolidado por fila de reclamacao '||LPAD ( ' ', 80, ' ' )|| 
           to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'); 
  
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA ); 
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_TRACO2 ); 
  UTL_FILE.PUT_LINE(FILE_HANDLE, ''); 
  
  W_LINHA := 'Fila de reclamacao '||LPAD ( ' ', 80, ' ' )|| 'Produto' ||LPAD ( ' ', 25, ' ' )||'Core'||LPAD ( ' ', 10, ' ' )||'Total por reclamacao';    
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA ); 
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_TRACO1 ); 
  --UTL_FILE.PUT_LINE(FILE_HANDLE, ''); 

  P_PROCESSOS_TOT             :=0; 
  
      FOR E IN ENTRADA_RECLAMACAO (P_DATA) 
      LOOP 
      
      P_PROCESSOS_DESCRICAO     := E.DESCRICAO; 
      P_PROCESSOS_TOT           := E.QUANTIDADE; 
      P_IDENTIFICACAO           := E.IDENTIFICACAO; 
      P_PROCESSOS_DESCRICAO_COD := E.COD_DESCRICAO; 
      
      W_CONTACARACTER := 155 - LENGTH(P_PROCESSOS_DESCRICAO); 
      
      W_LINHA  := P_PROCESSOS_DESCRICAO ||LPAD ( ' ', W_CONTACARACTER, ' ' )||P_PROCESSOS_TOT; 
      UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA ); 
      
          --Colocar aqui uma nova busca filtrando produto por reclamacao 
          --inicia Cursor para os produtos por reclamacao 
          
          CURSOR RECLAMACAO_PRODUTO ( P_PROCESSOS_DESCRICAO_COD IN NUMBER ) IS 
          
          -- Fila de reclamacao 
          SELECT IDENTIFICACAO, DESCRICAO, QUANTIDADE 
          FROM 
          ( 
          SELECT '2' IDENTIFICACAO, 
                  RTRIM(TPR.VARDSCPRODUTO) DESCRICAO, 
                  COUNT(TP.NUMIDPRODUTO) QUANTIDADE 
          FROM    TBPROCESSOS TP,    
                  TBPRODUTOS TPR, 
                  TBPROCESSOSRECLAMACAO TPROCR, 
                  TBTIPORECLAMACAO TTR 
          WHERE   TP.NUMIDPRODUTO = TPR.NUMIDPRODUTO 
          AND     TP.NUMIDPROCESSO = TPROCR.NUMIDPROCESSO 
          AND     TPROCR.NUMIDTIPORECLAMACAO = TTR.NUMIDTIPORECLAMACAO 
          AND     TTR.NUMIDTIPORECLAMACAO = P_PROCESSOS_DESCRICAO_COD 
          AND     TP.DATABERTURA >= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 1))),'DD/MM/YYYY')||' 00:00:00','DD/MM/YYYY HH24:MI:SS') 
          AND     TP.DATABERTURA <= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 2))),'DD/MM/YYYY')||' 23:59:59','DD/MM/YYYY HH24:MI:SS') 
          GROUP BY TPR.VARDSCPRODUTO 
          ); 
          
          R RECLAMACAO_PRODUTO%ROWTYPE; 
          
          
          W_CONTACARACTER             :=0; 
          
          --P_PROCESSOS_TOT             :=0; 
          

              FOR R IN RECLAMACAO_PRODUTO (P_PROCESSOS_DESCRICAO_COD) 
              LOOP 
              
              P_PROCESSOS_DESCRICAO     := R.DESCRICAO; 
              P_PROCESSOS_TOT           := R.QUANTIDADE; 
              P_IDENTIFICACAO           := R.IDENTIFICACAO; 
              
              --Impressao 
              W_CONTACARACTER := 155 - LENGTH(P_PROCESSOS_DESCRICAO); 
              
              W_LINHA  := P_PROCESSOS_DESCRICAO ||LPAD ( ' ', W_CONTACARACTER, ' ' )||P_PROCESSOS_TOT; 
              UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA );                            
              
              P_PROCESSOS_TOT         := 0; 
              END LOOP;  
          
      P_PROCESSOS_TOT         := 0; 
      END LOOP; 
  UTL_FILE.FCLOSE ( FILE_HANDLE ); 
END SP_REL_TAREFA4;

Erro emitido pelo oracle

Type PROCEDURE 
Owner SPATST 
Name SP_REL_TAREFA4 
Line Error text 
81 PLS-00103: Encountered the symbol "RECLAMACAO_PRODUTO" when expecting one of the following: 

   := . ( @ %; 
The symbol ":=" was substituted for "RECLAMACAO_PRODUTO" to continue. 
  
81 PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: 

   . ( * % & = - +; < / > in mod not rem an exponent (**) 
   <> or != or ~= >= <= <> and or like between is null is not || 
  
106 PLS-00103: Encountered the symbol "=" when expecting one of the following: 

   constant exception <an identifier> 
   <a double-quoted delimited-identifier> table LONG_ double 


Desde já agradeço qualquer dica, as vezes dar o peixe não é o foco deste fórum dessa forma quero realmente aprender ou seja quero pescar.

Valeu pelas dicas.

Fabio Nascimento

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá Fábio,

Puxa já faz um tempão que vejo isso, essas PROCEDURES...

Saldades... HEHHE :)

Vamos lá:

Esses erros realmente tem que ser analizado com muita cautela

eu num entendo muito da linguagem tecnica e tals, mas vouo tentar ajudar. Esse CURSOR que você inseriu no meio do deu código está errado, você deve coloca-lo na parte de cima do seu código, logo abaixo do outro cursor:

tenta rodar essa, aí se der outro erro você posta:

CREATE OR REPLACE PROCEDURE SP_REL_TAREFA4( P_DATA IN DATE ) 

AS 

CURSOR ENTRADA_RECLAMACAO ( P_DATA IN DATE ) IS 

  -- Fila de reclamacao 
  SELECT IDENTIFICACAO, DESCRICAO, COD_DESCRICAO, QUANTIDADE 
  FROM 
  ( 
  SELECT '1' IDENTIFICACAO, 
         RTRIM(TTR.VARDSCTIPORECLAMACAO) DESCRICAO, 
         TTR.NUMIDTIPORECLAMACAO, 
         COUNT  (TP.NUMIDPROCESSO) QUANTIDADE 
  FROM   TBPROCESSOS TP, 
         TBPROCESSOSRECLAMACAO TPR, 
         TBTIPORECLAMACAO TTR 
  WHERE  TP.NUMIDPROCESSO = TPR.NUMIDPROCESSO 
  AND    TPR.NUMIDTIPORECLAMACAO = TTR.NUMIDTIPORECLAMACAO 
  AND    TP.FLGTIPOPROCESSO = 'R' 
  AND    TP.DATABERTURA >= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 1))),'DD/MM/YYYY')||' 00:00:00','DD/MM/YYYY HH24:MI:SS') 
  AND    TP.DATABERTURA <= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 2))),'DD/MM/YYYY')||' 23:59:59','DD/MM/YYYY HH24:MI:SS') 
  GROUP BY TTR.VARDSCTIPORECLAMACAO 
  ); 

E ENTRADA_RECLAMACAO%ROWTYPE; 

CURSOR RECLAMACAO_PRODUTO ( P_PROCESSOS_DESCRICAO_COD IN NUMBER ) IS 
         
  -- Fila de reclamacao 
  SELECT IDENTIFICACAO, DESCRICAO, QUANTIDADE 
  FROM 
  ( 
  SELECT '2' IDENTIFICACAO, 
         RTRIM(TPR.VARDSCPRODUTO) DESCRICAO, 
         COUNT(TP.NUMIDPRODUTO) QUANTIDADE 
  FROM   TBPROCESSOS TP,    
         TBPRODUTOS TPR, 
         TBPROCESSOSRECLAMACAO TPROCR, 
         TBTIPORECLAMACAO TTR 
  WHERE  TP.NUMIDPRODUTO = TPR.NUMIDPRODUTO 
         AND     TP.NUMIDPROCESSO = TPROCR.NUMIDPROCESSO 
         AND     TPROCR.NUMIDTIPORECLAMACAO = TTR.NUMIDTIPORECLAMACAO 
         AND     TTR.NUMIDTIPORECLAMACAO = P_PROCESSOS_DESCRICAO_COD 
         AND     TP.DATABERTURA >= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 1))),'DD/MM/YYYY')||' 00:00:00','DD/MM/YYYY HH24:MI:SS') 
         AND     TP.DATABERTURA <= TO_DATE( TO_CHAR((TRUNC(FU_RECUPERA_PERIODO(P_DATA, 2))),'DD/MM/YYYY')||' 23:59:59','DD/MM/YYYY HH24:MI:SS') 
         GROUP BY TPR.VARDSCPRODUTO 
  ); 
          
R RECLAMACAO_PRODUTO%ROWTYPE;

  P_PROCESSOS_DESCRICAO       VARCHAR2(200); 
  P_PROCESSOS_DESCRICAO_COD   NUMBER; 
  P_PROCESSOS_TOT             NUMBER; 
  P_IDENTIFICACAO             VARCHAR2(1);  
  --P_PROCESSOS_PRODUTO         VARCHAR2(200); 
  --P_PROCESSOS_PRODUTOQTD      NUMBER; 
  
  FILE_PATH         VARCHAR2(100) := '/spa/relatorios'; 
  FILE_HANDLE        UTL_FILE.FILE_TYPE; 
  W_LINHA           VARCHAR2(300); 
  W_TRACO0          VARCHAR2(170) := LPAD ( ' ', 170, ' ' ); 
  W_TRACO1          VARCHAR2(170) := LPAD ( ' ', 170, '-' ); 
  W_TRACO2          VARCHAR2(170) := LPAD ( ' ', 170, '=' );      
  W_CONTACARACTER   NUMBER; 
  
BEGIN 

  W_CONTACARACTER             :=0; 
  
  FILE_HANDLE := UTL_FILE.FOPEN ( FILE_PATH, 'REL_TAREFA4.TXT', 'w' ); 
  W_LINHA := 'Relatorio consolidado por fila de reclamacao '||LPAD ( ' ', 80, ' ' )|| 
           to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'); 
  
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA ); 
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_TRACO2 ); 
  UTL_FILE.PUT_LINE(FILE_HANDLE, ''); 
  
  W_LINHA := 'Fila de reclamacao '||LPAD ( ' ', 80, ' ' )|| 'Produto' ||LPAD ( ' ', 25, ' ' )||'Core'||LPAD ( ' ', 10, ' ' )||'Total por reclamacao';    
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA ); 
  UTL_FILE.PUT_LINE ( FILE_HANDLE, W_TRACO1 ); 
  --UTL_FILE.PUT_LINE(FILE_HANDLE, ''); 

  P_PROCESSOS_TOT             :=0; 
  
     FOR E IN ENTRADA_RECLAMACAO (P_DATA) LOOP       

        P_PROCESSOS_DESCRICAO     := E.DESCRICAO; 
        P_PROCESSOS_TOT           := E.QUANTIDADE; 
        P_IDENTIFICACAO           := E.IDENTIFICACAO; 
        P_PROCESSOS_DESCRICAO_COD := E.COD_DESCRICAO; 
      
        W_CONTACARACTER := 155 - LENGTH(P_PROCESSOS_DESCRICAO); 
      
        W_LINHA  := P_PROCESSOS_DESCRICAO ||LPAD ( ' ', W_CONTACARACTER, ' ' )||P_PROCESSOS_TOT; 
        UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA ); 
      
        --Colocar aqui uma nova busca filtrando produto por reclamacao 
        --inicia Cursor para os produtos por reclamacao 
          
        W_CONTACARACTER             :=0; 
          
        --P_PROCESSOS_TOT             :=0; 
          

        FOR R IN RECLAMACAO_PRODUTO (P_PROCESSOS_DESCRICAO_COD) LOOP 
              
           P_PROCESSOS_DESCRICAO     := R.DESCRICAO; 
           P_PROCESSOS_TOT           := R.QUANTIDADE; 
           P_IDENTIFICACAO           := R.IDENTIFICACAO; 
              
           --Impressao 
           W_CONTACARACTER := 155 - LENGTH(P_PROCESSOS_DESCRICAO); 
              
           W_LINHA  := P_PROCESSOS_DESCRICAO ||LPAD ( ' ', W_CONTACARACTER, ' ' )||P_PROCESSOS_TOT; 
           UTL_FILE.PUT_LINE ( FILE_HANDLE, W_LINHA );                            
              
           P_PROCESSOS_TOT         := 0; 
        END LOOP;  
          
        P_PROCESSOS_TOT         := 0; 
     END LOOP; 
  UTL_FILE.FCLOSE ( FILE_HANDLE ); 
END SP_REL_TAREFA4;

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...