Verificar proximo valor do cursor antes de chegar nele.

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
LordElfo
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 111
Registrado em: Qui, 22 Fev 2007 2:34 pm
Localização: DF
________________
http://lordelfo.blogspot.com
Thiago Façanha

Olá Pessoal.
Uma dúvida:
-Alguém tem idéia de como posso verificar o próximo valor de um cursor sem estar nele ainda?
tipo:
Verifico se um campo altera. Caso ele altere eu vou escrever uma linha com a soma de todos os campo. Porem quando eu coloco "IF l_vant <> l_vpost" Ele já adiciona a primeira linha do proximo campo. Existe algo como cursorX.nextval?

Selecionar tudo

     FETCH c_select
      INTO r_select;
      EXIT WHEN c_select%notfound;
     BEGIN

 IF l_vQuebrant <> l_vQuebrapos THEN
         UTL_FILE.PUT_LINE(file_handle,'Soma Quebra : '
                                     || r_select.grupo 
                                     ||';'|| l_nSumQuebra); 
         l_vQuebrant  := l_vQuebrapos; 
         l_nSumQuebra := 0;
       END IF;
ricardorauber
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 96
Registrado em: Qua, 21 Jun 2006 11:33 pm
Localização: Canoas RS

Opa!

Existe uma função sql no Oracle que pode ajudar nisso, é a função LEAD. Ela mostra qual vai ser o próximo valor, como por exemplo:

Selecionar tudo

SQL> select * from ricardo_tmp;

         A
----------
         1
         2
         3
         4
         5

SQL> SELECT a, lead(a,1) over (ORDER BY a) prox FROM ricardo_tmp;

         A       PROX
---------- ----------
         1          2
         2          3
         3          4
         4          5
         5 
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes