Quiero conectarme a una base de datos Oracle ubicada en otro host usando sqlplus. Esta página sugirió agregar un elemento en mis tnsnames para conectarse a esa base de datos
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
y luego usar eso en sqlplus
sqlplus user/pass@local_SID
Sin embargo, en mis circunstancias no es posible modificar los tnsnames locales. ¿Es posible conectarse a una base de datos remota simplemente usando el argumento sqlplus sin tener que cambiar tnsnames? Algo como
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
database
sigue siendo un alias de TNS, que tiene que existir en eltnsnames.ora
, por lo que es lo mismo que Louis estaba tratando de evitar?Respuestas:
Tal vez, y esto podría depender del entorno de línea de comandos que esté utilizando, debe citar la cadena, algo así como
o
fuente
Puede usar easy connect para esto:
Para habilitar la conexión fácil en su máquina, debe agregarla a
NAMES.DIRECTORY_PATH
sqlnet.ora, por ejemplo:Si su escucha está en un puerto no predeterminado, use
[email protected]:port/...
.En realidad, parece que debe proporcionar un nombre de servicio, no un SID; pueden ser los mismos, pero si no, deberá obtenerlos del servidor.
fuente
Cree una copia del archivo tnsnames.ora en un directorio en el que pueda escribir, modifique el archivo en consecuencia y luego configure la variable de entorno TNS_ADMIN en la ubicación de ese directorio.
p.ej:
fuente
En el sistema Unix / Linux, puede usar los archivos de configuración de nivel de usuario para anular las entradas de nivel de sistema.
Los archivos de configuración a nivel del sistema se pueden encontrar en el directorio
$TNS_ADMIN
. Si la variableTNS_ADMIN
no está configurada, se busca en el directorio$ORACLE_HOME/network/admin
.Los archivos de configuración de nivel de usuario no sustituyen a los archivos de configuración de nivel de sistema como un todo (como el
TNS_ADMIN
directorio sustituye a todo el$ORACLE_HOME/network/admin
directorio) pero agregan o cambian las entradas de los archivos de configuración de nivel de sistema. Si existe una entrada en un archivo de configuración de nivel de usuario, se utiliza esta, si no existe en el archivo de configuración de nivel de usuario, se utiliza la entrada del archivo de configuración de nivel de sistema.fuente