Ir para conteúdo
Fórum Script Brasil

fabio.nascimento

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Posts postados por fabio.nascimento

  1. 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

×
×
  • Criar Novo...