Digamos que tengo una base de datos Oracle. Tengo un nombre de usuario = x, contraseña = y, base de datos = z. También sé que el puerto = a, SID = b, Hostname = c.
Entonces, ¿cómo tengo que conectar correctamente? He utilizado muchas opciones 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)))
El envío de estas líneas de comando por lo general me devuelve mensajes de error como:
ORA-12560: TNS:error de adaptador de protocolo
ORA-12514: TNS:listener no conoce actualmente el servicio
¡¡Muchas gracias de antemano!!
¿Intentaste
sqlplus username/password@host:port/service
sqlplus x/y@c:a/b
Las versiones modernas de sqlplus (versión 11 o más reciente) entienden esta sintaxis y no necesita un archivo tnsnames.ora.
Lo más sencillo es utilizar el archivo tnsnames.ora para conectarse a la base de datos. Para ello hay que editarlo y añadir una nueva entrada: Este archivo normalmente reside en el directorio $ORACLE HOMENETWORK\ADMIN.
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
y entonces podrás conectarte a la db:
sqlplus x/y@miDb
Tal vez su base de datos no está en funcionamiento. Si la máquina se ha reiniciado y la instancia no está configurada para que se inicie automáticamente (y no se ha iniciado manualmente), es posible que tenga que iniciar el servicio usted mismo.
Si tiene acceso a la pantalla de Servicios, puede hacerlo desde allí; o bien, puede hacerlo desde la línea de comandos.
Vaya a la línea de comandos e introduzca los siguientes comandos:
set oracle_sid=ORCL
net start oracleserviceORCL
El primero establece el SID de Oracle; el segundo inicia realmente el servicio.