Digamos que eu tenho uma base de dados Oracle. Eu tenho um nome de usuário = x, senha = y, banco de dados = z. Também sei a porta = a, SID = b, Hostname = c.
Então como é que preciso de me ligar correctamente? Eu usei muitas opções como:
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))
Submeter estas linhas de comando normalmente devolve-me mensagens de erro como:
ORA-12560: TNS:protocol adapter error
ORA-12514: TNS:ouvinte não sabe de serviço no momento
Muito obrigado de antemão!!
você tentou
sqlplus username/password@host:port/service
sqlplus x/y@c:a/b
versões modernas do sqlplus (versão 11 ou mais recente) entendem esta sintaxe e você não't precisa de um arquivo tnsnames.ora.
O mais simples é usar o arquivo tnsnames.ora para se conectar ao banco de dados. Para isso, edite-o e adicione uma nova entrada: Este ficheiro normalmente reside no directório $ORACLE HOME\NETWORK\ADMIN.
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
e depois podias ligar-te à DB:
sqlplus x/y@myDb
Talvez a sua base de dados não esteja em alta. Se a máquina foi reiniciada e a instância não está configurada para reiniciar automaticamente (e não foi iniciada manualmente), talvez seja necessário que você mesmo inicie o serviço.
Se você tem acesso à tela Serviços, você pode fazê-lo a partir daí; ou, você pode fazê-lo a partir da linha de comando.
Vá para o prompt de comando e digite os seguintes comandos:
set oracle_sid=ORCL
net start oracleserviceORCL
O primeiro define o SID do Oracle; o segundo realmente inicia o serviço.