Pular para o conteúdo
WaitScope Entrar Solicitar acesso (por e-mail) Menu

ORA-01403 (fim de dados) no trace

O achado FIM_DE_DADOS aparece quando o único erro do trace é o ORA-01403, fim normal de leitura. Veja os casos em que ele merece atenção.

Vale para: Traces 10046

O ORA-01403 é o código de "nenhum dado encontrado". Em leitura de cursor, ele marca só o fim normal dos dados. Por isso o relatório o separa dos outros erros e, quando ele é o único código do trace, mostra um achado só informativo.

Sintomas

No Diagnóstico, aparece o achado n ORA-01403 (fim de dados) (FIM_DE_DADOS), com o texto Normal em laços de leitura. e o link Ver erros. A severidade é informação, sem percentual do tempo total.

O achado aparece só quando o ORA-01403 é o único código de erro do trace. Se há outro código, aparece no lugar o achado de erros Oracle no trace, cuja contagem deixa o 1403 de fora. As ocorrências de ORA-01403 continuam listadas na seção Erros nos dois casos.

Causa

O cartão do código, na seção Erros, resume as duas origens:

  • Em select ... into no PL/SQL, a consulta não devolveu linha, e o PL/SQL levanta a exceção NO_DATA_FOUND.
  • Em fetch de cursor, é só o fim normal dos dados: em laços de leitura, aparece uma vez por cursor percorrido.

Resolução

Na maior parte das vezes, não há o que corrigir. Para conferir:

  1. Clique em Ver erros.
  2. No cartão do ORA-01403, veja em Onde apareceu a Chamada, o Comando, a Prof. e as Ocorrências de cada local.

    Resultado: você sabe qual comando gera o código e quantas vezes.

  3. Compare as ocorrências com as execuções do comando, em Chamadas no detalhe dele.

Vale agir em três casos:

  • Muitas ocorrências vindas de um select ... into que pesa no tempo: o código testa a existência linha a linha e usa a exceção para controlar o fluxo. Troque por um SQL que trate o conjunto, com junção, exists ou merge (linha a linha em PL/SQL).
  • A linha devia existir, como um cadastro que falta ou uma chave errada: o erro é sinal de dado inconsistente. Confira o dado que o comando procura.
  • O PL/SQL esconde o erro com when others then null: o mesmo bloco esconde também os outros erros. Trate o NO_DATA_FOUND pelo nome.

Como confirmar

Se você mudou o código, gere o trace da mesma operação e compare as ocorrências do ORA-01403 em Erros e a coluna Inclusivo (s) do comando que o gerava, em Comandos SQL por contribuição. Com o laço trocado por um SQL de conjunto, os dois caem.

No relatório

O relatório de exemplo não tem erros, e a seção Erros só aparece quando o trace tem algum.

Atualizado em 29/10/2026. Relatar erro nesta página