ORA-12154: TNS:could not resolve service name
Nada parece estar mal:
- Creamos el link utilizando el service name del tnsnames.ora
- Verificamos que la entrada del servicio está justamente definida en el archivo
- Revisamos que nuestra aplicación esté leyendo el tnsnames.ora correcto (en caso de que tengamos muchos)
- El usuario y password del link funciona OK si me conecto por SQL*plus
- Tengo el privilegio CREATE DATABASE LINK
- Al crear el link me retorna que el link fue creado exitosamente
La razón por la cual no encuentra el conector aún la desconozco, pero la forma de evitar el problema es:
En lugar de definir el link de esta forma:
create public database link uat1prod_lnk
connect to oramain
identified by "0racl3"
using 'produat1db';
donde 'produat1db' es el nombre del service name para ese conector (tnsnames.ora)
Definirlo así:
create public database link uat1prod_lnk
connect to oramain
identified by "0racl3"
using '(description=(address=(protocol=TCP)
(host=192.168.3.32)(port=1521))(connect_data=(sid=uat1db)))';
donde 'uat1db' es el nombre del SID de la base de datos.
Crearlo de esta manera corrige el problema. Otra ventaja adicional que me proporciona esta sintaxis, es independencia del tnsnames.ora.
Lo único que necesito es: IP, puerto y SID de la base de datos.
4 comentarios:
Fantastico, me has resuelto el problema.
Necesitaba poder crear DB Link digamos que dinamicamente, lo más independiente posible de los ficheros de configuracion del servidor de ORACLA.
Excelente solucion,
GRACIAS !
Eres la Ley... muchas gracias me funciono perfectamente.
Excelente! Me solucionaste el problema! Mil Gracias!!!!!
Gracias por tu aportación, ¿Como podría ejecutar una consulta que muestre los datos de dos bases de datos?
Publicar un comentario