Listar Nomes de Serviço Oracle remotos

2

Algum software que estou escrevendo precisa consultar um banco de dados oracle - o DBA está ausente por um tempo, então tudo o que tenho que fazer é algum código-fonte de outro aplicativo que se conecta ao mesmo banco de dados (e não estou mesmo com certeza é atual). A string de conexão do java se parece com isso:

jdbc:oracle:thin:@101.010.101.010:1521:srip

O que a documentação do jdbc me diz significa que o endereço / porta do servidor é 101.010.101.010:1521 e o 'nome do serviço' é srip. Eu criei uma entrada correspondente em tnsnames.ora que se parece com isso:

mydb=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 101.010.101.010)(PORT = 1521))
    (CONNECT_DATA =
     (SERVICE_NAME = srip)
    )
  )

No diálogo de configuração ODBC, o cliente oracle encontra a entrada 'mydb' e a lista em 'Nome do serviço TNS'. Quando tento 'testar conexão', ele retorna instantaneamente com erro ORA-12514: TNS: o ouvinte não sabe do serviço solicitado no decsriptor de conexão. Eu acho que isso significa que a entrada SERVICE_NAME está errada, talvez tenha sido alterada. Existe alguma maneira de descobrir quais nomes de serviço estão disponíveis em um servidor remoto que eu não tenho nenhum outro acesso?

    
por K. P. Whitford 22.02.2011 / 18:29

1 resposta

5

Sim, você pode fazer esse tipo de coisa, mas você precisaria ser concedido no servidor de banco de dados para saber a senha do ouvinte (se tiver sido definida).

Antes disso, você poderia:

  1. Edite seu tns.ora e substitua "SERVICE_NAME" em vez de "SID".
  2. Verifique se o arquivo sqlnet.ora está com uma diretiva "DEFAULT_DOMAIN" incorreta.
por 22.02.2011 / 18:53

Tags