FETCH não recupera linhas

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
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Pessoal seguinte, estou fazendo esse bloco abaixo e o que acontece é o seguinte. o cursor é aberto, ele chega até entrar no loop, mas o fetch não me recupera nada(sendo que tem linhas a sert recuperadas, já verifiquei)

Selecionar tudo

  open cCursorTeste for vSQL;

  loop
    DBMS_OUTPUT.PUT_LINE('Ele entra aqui');
    fetch cCursorTeste into AUX;

    exit when cCursorTeste%notfound;

    DBMS_OUTPUT.PUT_LINE('Ele NÃO entra aqui');
    

  end loop;
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Seu Cursor está errado:

Selecionar tudo

SQL> SET SERVEROUTPUT ON
SQL> 
SQL> declare
  2    cursor cCursorTeste is select * from dual;
  3    aux cCursorTeste%rowtype;
  4  begin
  5    open cCursorTeste;
  6  
  7    loop
  8      DBMS_OUTPUT.PUT_LINE('Ele entra aqui');
  9      fetch cCursorTeste into AUX;
 10  
 11      exit when cCursorTeste%notfound;
 12  
 13      DBMS_OUTPUT.PUT_LINE('Ele NÃO entra aqui');
 14    end loop;
 15  end;
 16  /
Ele entra aqui
Ele NÃO entra aqui
Ele entra aqui

PL/SQL procedure successfully completed.

SQL> 
Agora funciona.
Tem que ser

OPEN cursor_name;
FETCH cursor_name INTO variavel;
OU
FOR var IN cursor_name
LOOP
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

valeu brother
Responder
  • Informação
  • Quem está online

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