Alguns erros q nao consigo identificar, por favor

Oracle

22/09/2006

Pessoal,

Boa tarde, primeiramente gostaria de salientar q 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 qq 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


Fabioanascimento

Fabioanascimento

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

22/09/2006

Fábio,
o cursor Reclamação produto tem que ficar antes do begin.

CURSOR RECLAMACAO_PRODUTO ( P_PROCESSOS_DESCRICAO_COD IN NUMBER ) IS



GOSTEI 0
POSTAR