Isso realmente deve ser um comentário à resposta de Brad Rippe , mas infelizmente, não é o suficiente. Essa resposta me levou 90% do caminho até lá. No meu caso, a instalação e a configuração dos bancos de dados colocam entradas no arquivo tnsnames.ora para os bancos de dados que eu estava executando. Primeiro, consegui me conectar ao banco de dados definindo as variáveis de ambiente (Windows):
set ORACLE_SID=mydatabase
set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1
e depois conectar usando
sqlplus / as sysdba
Em seguida, executando o comando da resposta de Brad Rippe:
select value from v$parameter where name='service_names';
mostrou que os nomes não correspondiam exatamente. As entradas criadas usando o Assistente de Configuração de Banco de Dados da Oracle onde originalmente:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase.mydomain.com)
)
)
O nome do serviço da consulta era apenas um mydatabase
pouco mydatabase.mydomain.com
. Eu editei o arquivo tnsnames.ora apenas para o nome base, sem a parte do domínio, para que parecessem assim:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase)
)
)
Eu reiniciado o serviço TNS Listener (muitas vezes eu uso lsnrctl stop
e lsnrctl start
de uma janela de comando do administrador [ou o Windows PowerShell] em vez do painel de controle Serviços, mas ambos trabalham.) Depois disso, eu era capaz de se conectar.