Erro quando não acha dados na consulta

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
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Ola, boa tarde... criei um codigo para localizar um determinado registro, porém, se a consulta retorna vazio, dá erro... veja o codigo

Selecionar tudo

select CODIGO_PROPONENTE 
      INTO :P27_COD_PROPONENTE
      from LIC_LICITACAO_ITENS_PREGAO
      where VALOR_LANCE = (SELECT MAX(VALOR_LANCE) FROM LIC_LICITACAO_ITENS_PREGAO
                          where 
                          CODIGO_LICITACAO = :G_NR_LICITACAO and
                          ID_CIDADE = :G_ID_CIDADE and
                          LOTE = :P27_GUARDA_LOTE and
                          CODIGO_ITEM = :P27_GUARDA_CODIGO_ITEM and
                          MOSTRAR_TELA_LANCE = '1'
                          ) AND 
                          CODIGO_LICITACAO = :G_NR_LICITACAO and
                          ID_CIDADE = :G_ID_CIDADE and
                          LOTE = :P27_GUARDA_LOTE and
                          CODIGO_ITEM = :P27_GUARDA_CODIGO_ITEM and
                          MOSTRAR_TELA_LANCE = '1';

se não tem registro, conforme o criterio, da o erro:
A chamada do Ajax retornou o erro de servidor ORA-01403:
dados não encontrados para Executar Código PL/SQL.


O e evento é executado no carregamento da pagina

Como posso tratar isso, caso não seja encontrado dados, não dê erro para o usuario....
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

Isso é normal.
Quando a consulta não retorna nada, o erro ORA-01403 é retornado.

Pra resolver isso, basta colocar um EXCEPTION:

Selecionar tudo

begin
  select CODIGO_PROPONENTE 
      INTO :P27_COD_PROPONENTE
      from LIC_LICITACAO_ITENS_PREGAO
      where VALOR_LANCE = (SELECT MAX(VALOR_LANCE) FROM LIC_LICITACAO_ITENS_PREGAO
                          where 
                          CODIGO_LICITACAO = :G_NR_LICITACAO and
                          ID_CIDADE = :G_ID_CIDADE and
                          LOTE = :P27_GUARDA_LOTE and
                          CODIGO_ITEM = :P27_GUARDA_CODIGO_ITEM and
                          MOSTRAR_TELA_LANCE = '1'
                          ) AND 
                          CODIGO_LICITACAO = :G_NR_LICITACAO and
                          ID_CIDADE = :G_ID_CIDADE and
                          LOTE = :P27_GUARDA_LOTE and
                          CODIGO_ITEM = :P27_GUARDA_CODIGO_ITEM and
                          MOSTRAR_TELA_LANCE = '1';

exception when NO_DATA_FOUND then NULL;  --> aqui você trata o que fazer se não achou.
end;
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Entendi, muito obrigado...

aproveitando o topico,

quando é retornado os dados, uma série de validações são executadas... agora, se não é retornado nenhum registro, há alguma forma, via codigo, de redirecionar para outra pagina?? ou via codigo, ocultar itens da pagina??

Porq eu consegui, apos a busca, armazenar um determinado num ITEM,,, dai em cada ITEM/REGIAO q eu quero q fique oculto, eu coloco a condição do servidor, funciona... mas percebi que primeiro é carregada a pagina, depois é q roda as validações, dai nem sempre consigo carregar o ITEM q servirá para fazer condições do servidor
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

Se possível, crie um outro tópico no forum APEX.
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

beleza, obrigado... já vou criar
Responder
  • Informação
  • Quem está online

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