Select retorna null e cursor entra na exception

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
pnet2020
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 23 Jan 2020 9:42 pm

Tenho um cursor e o select desse cursor retorna null. Quando isso acontece, o cursor entra na exception. Isso está correto?
Fiz: EXIT WHEN MEU_CURSOR%NOTFOUND;

Entrar na exception, porque veio null o select, é o correto ou nào?
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

O problema deve ser outro.
Já tentou executar o seu SELECT direto pra ver se ele está retornando o que você espera ?
Coloca no Exception pra retornar o erro: SQLERRM.
Algo assim:

Selecionar tudo

dbms_output.put_line ( SQLERRM );
Ou outra forma que você consiga capturar o erro.
pnet2020
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 23 Jan 2020 9:42 pm

O select retorna null como eu disse, pois executei ele com os dados. Vou fazer isso
pnet2020
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 23 Jan 2020 9:42 pm

Selecionar tudo

ORA-01422: exact fetch returns more than requested number of rows
Esse foi o erro capturado
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 select ta retornando mais que uma linha.
Isso pode estar acontecendo em um sub-select.
Algo assim:

Selecionar tudo

WHERE campo = (select ..... from ...)
Isso pode ser fácilmente contornável colocando IN em vez de =.

Mas pode ser outra coisa. Sem ver o select fica impossível dizer onde está o erro.
Responder
  • Informação