Forum Stats

  • 3,768,730 Users
  • 2,252,841 Discussions
  • 7,874,701 Comments

Discussions

Host Desconhecido ORA-29257

Jonts
Jonts Member Posts: 10 Green Ribbon
edited Jan 15, 2019 2:59PM in SQL and PL/SQL (Portuguese)

Bom dia,

Sou iniciante de Oracle PL/SQL.

Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

SELECT COD_ESTAB, NM_USUARIO, DS_MAQUINA, UTL_INADDR.GET_HOST_ADDRESS(DS_MAQUINA) IP,DT_ACESSO,DT_SAIDAFROM LOG_ACESSOWHERE DT_ACESSO BETWEEN TO_DATE('09-01-2019 00:00:00','DD/MM/YYYY HH24:MI:SS') AND TO_DATE('09-01-2019 23:59:00','DD/MM/YYYY HH24:MI:SS')AND DT_SAIDA IS NULLORDER BY CD_ESTAB, DT_ACESSO

Estou usando o UTL_INADDR.GET_HOST_ADDRESS('')  para mostrar IP do computador, quando executo mostra ORA-29257 "Host Desconhecido".

Tem como tratar no select de quando não conseguir mostrar o IP ficar vazio esse campo e continuar mostrando o restante?

Host Desconhecido.png

Jonts

Best Answer

  • Alex.Zaballa
    Alex.Zaballa Member Posts: 33 Bronze Badge
    edited Jan 11, 2019 8:45AM Accepted Answer

    Uma das opções é criar uma função sua e tratar a exception.

    create or replace function minha_funcao(P_DS_MAQUINA in varchar2) RETURN varchar2 is

    v_retorno varchar2(20);

    begin

    begin

      v_retorno:=UTL_INADDR.GET_HOST_ADDRESS(P_DS_MAQUINA);

    exception when others then

      v_retorno:=null;

    end;

    return v_retorno;

    end;

    /


    SELECT minha_funcao(DS_MAQUINA) FROM LOG_ACESSO;

    Jonts

Answers

  • Alex.Zaballa
    Alex.Zaballa Member Posts: 33 Bronze Badge
    edited Jan 11, 2019 8:45AM Accepted Answer

    Uma das opções é criar uma função sua e tratar a exception.

    create or replace function minha_funcao(P_DS_MAQUINA in varchar2) RETURN varchar2 is

    v_retorno varchar2(20);

    begin

    begin

      v_retorno:=UTL_INADDR.GET_HOST_ADDRESS(P_DS_MAQUINA);

    exception when others then

      v_retorno:=null;

    end;

    return v_retorno;

    end;

    /


    SELECT minha_funcao(DS_MAQUINA) FROM LOG_ACESSO;

    Jonts
  • Jonts
    Jonts Member Posts: 10 Green Ribbon
    edited Jan 15, 2019 9:53AM

    Alex boa tarde,

    Obrigado pelo retorno.

    Eu usei função enviada mas está retornando somente "NULL" em todos os registros, existe outra forma de tratar um host desconhecido?
    IP.png

  • Alex.Zaballa
    Alex.Zaballa Member Posts: 33 Bronze Badge
    edited Jan 15, 2019 2:59PM

    Boa tarde,

    Se está retornando NULL, é porque o seu servidor de banco de dados não está conseguindo resolver os HOSTNAMEs que estão na coluna DS_MAQUINA.

    Acessa a linha de comando do SO do teu servidor de banco de dados da um "ping ALGUM_HOSTNAME_QUE_ESTÁ_NA_TABELA".

    Provavelmente não vai retornar o IP.

    Por exemplo:

    [[email protected] /]$ ping servidordeteste

    ping: unknown host servidordeteste

    Se isso acontecer, você terá que pedir pro pessoal de Infra dar uma olhada na configuração de DNS do teu servidor de banco de dados.