Quero conectar-me a um banco de dados oracle localizado em outro host usando o sqlplus. Esta página sugeriu a adição de um item em meus tnsnames para coincidir com esse banco de dados
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
e então use isso no sqlplus
sqlplus user/pass@local_SID
No entanto, nas minhas circunstâncias, modificar os nomes de nomes de domínio locais não é possível. É possível conectar-se a um banco de dados remoto usando o argumento sqlplus sem precisar alterar tnsnames? Algo como
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
database
ainda é um alias do TNS, que deve existir notnsnames.ora
, por isso é o mesmo que Louis estava tentando evitar?Respostas:
Talvez, e isso possa depender do ambiente da linha de comando que você está usando, é necessário citar a string, algo como
ou
fonte
Você pode usar a conexão fácil para isso:
Para permitir uma conexão fácil em sua máquina, você precisa adicioná-lo ao
NAMES.DIRECTORY_PATH
sqlnet.ora, por exemplo:Se o seu ouvinte estiver em uma porta não padrão, use
[email protected]:port/...
.Na verdade, parece que você precisa fornecer um nome de serviço, não um SID; eles podem ser os mesmos, mas caso contrário, você precisará obtê-lo do servidor.
fonte
Crie uma cópia do arquivo tnsnames.ora em um diretório no qual você possa gravar, modifique o arquivo adequadamente e defina a variável de ambiente TNS_ADMIN para o local desse diretório.
por exemplo:
fonte
No sistema Unix / Linux, você pode usar os arquivos de configuração no nível do usuário para substituir as entradas no nível do sistema.
A configuração de nível de sistema Os arquivos podem ser encontrados no diretório
$TNS_ADMIN
. Se a variávelTNS_ADMIN
não está definida, em seguida, eles são pesquisados no diretório$ORACLE_HOME/network/admin
.Os arquivos de configuração no nível do usuário não substituem os arquivos de configuração no nível do sistema como um todo (como o
TNS_ADMIN
diretório substitui o$ORACLE_HOME/network/admin
diretório inteiro ), mas eles adicionam ou alteram entradas dos arquivos de configuração no nível do sistema. Se existir uma entrada em um arquivo de configuração no nível do usuário, este será utilizado, se não existir no arquivo de configuração no nível do usuário, será usada a entrada do arquivo de configuração no nível do sistema.fonte