reconoce ora not name error developer could configurar 11g oracle odbc tns

not - Oracle ORA-12154: TNS: ¿No se pudo resolver el error del nombre del servicio?



sql error 12154 (20)

@Warren y @DCookie han cubierto la solución, una cosa para enfatizar es el uso de tnsping . Puedes usar esto para probar que tus TNSNames son correctos antes de intentar conectarte.

Una vez que haya configurado correctamente sus nombres, puede usar ODBC o probar TOra, que usará su conexión oráculo nativa. TOra o algo similar (TOAD, SQL * Plus, etc.) será invaluable en la depuración y mejora de su SQL.

Por último, pero no menos importante, cuando finalmente se conecta con ASP.net recuerde que puede usar las bibliotecas de conexión de datos de Oracle. Consulte Oracle.com para obtener una gran cantidad de recursos.

Soy un usuario de SQL Server.

Estoy en un proyecto que está usando Oracle (que rara vez uso) Necesito crear una conexión ODBC para que pueda acceder a algunos datos a través de MS Access Tengo una aplicación en mi máquina llamada oraHome90. Parece permitir una configuración de algo llamado oyente en una "utilidad de configuración de red", creo que también se debe hacer una "Configuración de nombre de servicio de red local". El soporte de TI me dio esta información para configurar la conexión ODBC. He probado todas las combinaciones que se me ocurren. Puedo superar una prueba que pasa con éxito una prueba para "iniciar sesión" en la base de datos del servidor de Oracle. Cuando trato de crear la conexión ODBC obtengo el siguiente error: ORA-12154: TNS: no se pudo resolver el nombre del servicio.

Asumiendo que quiero comenzar desde cero y se supone que la siguiente información me permite conectarme a la base de datos ... ¿Alguna sugerencia o comentario? Nota: en última instancia, el proyecto tendrá un sitio web. La página ASP consultará los datos, pero primero tengo que demostrar que puedo ver los datos usando la conexión ODBC a través de MS Access.

Service name: SERVICENAME HOST = HOST.XYZi.com User Id: MYUSERID Password: MYPASSWORD ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ''Oracle Connection Dim ocst Dim oconn ocst = "Provider=OraOLEDB.Oracle;" & _ "Data Source=DATASOURCE;" & _ "User ID=CHIJXL;" & _ "Password=password;" set oconn = CreateObject("ADODB.Connection")


Partiendo de la suposición de que está utilizando nombres TNSNAMES, aquí hay un par de cosas que hacer:

  • Cree / modifique el archivo tnsnames.ora en el subdirectorio network / admin asociado con OraHome90 para incluir una entrada para su base de datos Oracle:

> SERVICENAME_alias = > (DESCRIPTION = > (ADDRESS = (PROTOCOL = TCP)(HOST = HOST.XYZi.com)(PORT = 1521)) > (CONNECT_DATA = (SERVICE_NAME = SERVICENAME))

Esto supone que está utilizando el puerto Oracle estándar de 1521. Tenga en cuenta que servicename_alias puede ser cualquier nombre que desee usar en el sistema local. También puede encontrar que necesita especificar (SID = SERVICENAME) en lugar de (SERVICENAME = SERVICENAME).

  • Ejecute tnsping servicename_alias para verificar la conectividad. Haz que esto funcione antes de ir más lejos. Esto le dirá si ha pasado el error 12154.
  • Suponiendo una buena conexión, cree un DSN ODBC usando el panel de control, especificando el controlador ODBC para Oracle de su elección (generalmente hay un controlador ODBC de Microsoft al menos, y debería funcionar adecuadamente como una prueba de concepto). Asumiré el nombre que le dieron a DATASOURCE. Use servicename_alias como el nombre del Servidor en la configuración ODBC.
  • En este punto, debe poder conectarse a su base de datos a través de Access. No soy un programador de VB, pero sé que debería poder ir a Archivo-> Obtener datos externos-> Tablas de enlaces y conectarse a su fuente ODBC. Asumiría que tu código también funcionaría.

de http://ora-12154.ora-code.com

ORA-12154 : TNS: no se pudo resolver el identificador de conexión especificado
Causa : se solicitó una conexión a una base de datos u otro servicio utilizando un identificador de conexión, y el identificador de conexión especificado no se pudo resolver en un descriptor de conexión utilizando uno de los métodos de nomenclatura configurados. Por ejemplo, si el tipo de identificador de conexión utilizado era un nombre de servicio de red, entonces el nombre de servicio de red no podría encontrarse en un repositorio de métodos de denominación, o el repositorio no podría ser localizado o alcanzado.
Acción :

  • Si usa nombres locales (archivo TNSNAMES.ORA):

  • Asegúrese de que "TNSNAMES" figure como uno de los valores del parámetro NAMES.DIRECTORY_PATH en el perfil de Oracle Net (SQLNET.ORA)

  • Verifique que exista un archivo TNSNAMES.ORA y que esté en el directorio correcto y que esté accesible.

  • Compruebe que el nombre del servicio de red utilizado como el identificador de conexión existe en el archivo TNSNAMES.ORA.

  • Asegúrese de que no haya errores de sintaxis en ningún lugar del archivo TNSNAMES.ORA. Busque paréntesis sin par o personajes callejeros. Los errores en un archivo TNSNAMES.ORA pueden hacerlo inutilizable.

  • Si usa nombres de directorio:

  • Verifique que "LDAP" figure como uno de los valores del parámetro NAMES.DIRETORY_PATH en el perfil de Oracle Net (SQLNET.ORA).

  • Verifique que el servidor de directorio LDAP esté activo y que esté accesible.

  • Verifique que el nombre del servicio de red o el nombre de la base de datos utilizado como el identificador de conexión esté configurado en el directorio.

  • Verifique que el contexto predeterminado que se está utilizando sea correcto especificando un nombre de servicio de red totalmente calificado o un DN de LDAP completo como el identificador de conexión

  • Si está usando nombres de conexión fácil:

  • Verifique que "EZCONNECT" aparezca como uno de los valores del parámetro NAMES.DIRETORY_PATH en el perfil de Oracle Net (SQLNET.ORA).

  • Asegúrese de que el host, el puerto y el nombre del servicio especificados sean correctos.

  • Intente adjuntar el identificador de conexión entre comillas. Consulte la Guía de administradores de Oracle Net Services o la guía específica del sistema operativo Oracle para obtener más información sobre cómo nombrar.


Horas de problemas SOLUCIONADOS. Había instalado el Beta Entity Framework para Oracle y en el proyecto visual studio 2010 MVC 3 estaba haciendo referencia en la pestaña .NET Oracle.DataAccess ... Esto me daba el "Oracle ORA-12154: TNS: no podría ... . "error. Finalmente busqué en la instalación anterior de Oracle en c: / Oracle / product .... usando la versión anterior 10.2.0.100 de la dll. Finalmente funciona ahora. Espero que ayude a alguien más.


Luché para resolver este problema durante horas hasta que encontré una variable de entorno llamada TNS_ADMIN establecida en Mi PC => Propiedades => Avanzado => Variables de entorno => buscar en las variables del sistema para una entrada llamada TNS_ADMIN. TNS_ADMIN se agrega para cambiar la ruta predeterminada para la entrada Tnsnames.ora. Esto es útil cuando se usa en un entorno de red donde se puede configurar una entrada genérica tnsnames.ora para todas las computadoras de la red. Para ver la ruta predeterminada de tnsnames.ora, agregue la ruta predeterminada en TNS_ADMIN.


Si hay un espacio al principio del nombre de tns define en el archivo tnsnames.ora , entonces algunos de los conectores como odbc pueden dar este error. Elimina el carácter de espacio al principio.


Solo paso una hora en esto, soy nuevo en Oracle, así que estaba completamente confundido.

la situación:

acaba de instalar Visual Studio 2012 herramientas de desarrollador de Oracle. Cuando hice esto, perdí los elementos en mi menú desplegable que contenía mis entradas TNS en TOAD. ¡Obtuve este error de Visual studio Y TOAD! ¡WTH! así que agregué la Variable ambiental TNS_ADMIN bajo "TODOS LOS USUARIOS" con la ruta a mi archivo .ora (que ahora funcionó bien porque funcionó hasta que lo rompí). Toad recogió ese cambio. Aún así, Visual Studio no me daría ningún amor ... sigue teniendo el mismo error. ENTONCES, agregué la variable ambiental A MIS VARIABLES DE USUARIO ... VIOLA !!

ASEGÚRESE DE QUE LAS VARIABLES AMBIENTALES ESTÉN FIJAS PARA EL SISTEMA Y EL USUARIO


En referencia al # 7 en este MSDN POST , agregar una entrada de registro funcionó para mí. Tenía Vs2010, et oracle 11.0 instalado.

Compruebe la clave de registro "TNS_ADMIN" en HKEY_LOCAL_MACHINE / SOFTWARE / ORACLE. Si existe, asegúrese de que tenga el valor correcto como "Dir: / app / product / 11.1.0 / client_1 / network / admin". Si no ve la clave, cree la clave y establezca el valor apropiado de la siguiente manera. Regedit-> HKEY_LOCAL_MACHINE-> Software-> Oracle-> RightHaga clic en NUEVO-> StringValue y asígnele el nombre "X: / app / product / 11.1.0 / client_1 / network / admin".


Yo también tuve este problema. Descubrí que el problema es porque a Oracle DB no le gusta el espacio en C: archivos de programa (x86) / Toad ...... así que creé un nuevo directorio llamado C: App / Toad y luego reinstalé en él para conectar Toad a Oracle . Funcionó.


Solo reinicie los servicios SID. Por ejemplo, tu nombre de SID = orcl, entonces todos los servicios que están relacionados con orcl deberían reiniciarse, entonces tu problema será resuelto


No tiene nada que ver con un espacio incrustado en la estructura de la carpeta.

Yo tuve el mismo problema. Pero cuando creé una variable de entorno (definida tanto a nivel de sistema como de usuario) llamada TNS_HOME y la hice para apuntar a la carpeta donde existía TNSNAMES.ORA, se resolvió el problema. Voila!

venki


Resolvimos nuestros problemas volviendo a instalar Oracle Database Client. De alguna manera, la instalación no fue exitosa en 1 de las estaciones de trabajo (aunque no hubo registro), sin embargo, al comparar tamaño / archivos / carpetas del directorio de Oracle con una estación de trabajo cliente en funcionamiento, hubo una cantidad significativa de archivos que faltaban. Una vez que realizamos una instalación limpia, todo funcionó perfectamente.


También tuvimos el problema similar. Lo que averiguamos es que hemos proporcionado múltiples alias para nuestra cadena de conexión en tnsnames.ora, algo así como:

svc01, svc02 = (DESCRIPCIÓN = (DIRECCIÓN = (PROTOCOLO = TCP) (HOST = xxxx) (puerto = 50)) (CONNECT_DATA = (SERVER = DEDICATED) (service_name = yyyysvc.world)))

así que cuando creamos una conexión usando ODBC, cuando seleccionamos el valor para el nombre del servicio TNS, el autopoblar mostraba ''svc01'' (por favor, tenga en cuenta la coma adicional allí). Tan pronto como eliminamos la coma, comenzó a funcionar para nosotros.


Tuve el mismo problema y apareció el mismo error. mi archivo TNSNAMES: ORA también era bueno pero aparentemente había un problema debido a que el firewall bloqueaba el acceso. ASÍ que un buen consejo sería asegurarse de que el firewall no esté bloqueando el acceso a la fuente de datos.


Si tiene un DSN de 32 bits y un DSN de 64 bits con los mismos nombres, Windows elegirá automáticamente el de 64 bits y si su aplicación es de 32 bits, muestra este error. Solo ten cuidado con eso.


Tuve este problema debido a un error tipográfico en el nombre de archivo tsnames.ora en lugar de tnsnames.ora


Solucioné este problema usando estos pasos.

En primer lugar, se produjo este error, si no instaló el mismo directorio o unidad.

Pero la respuesta está aquí.

  1. Inicie sesión en Windows como Adminstrator.
  2. Ve al Panel de control.
  3. Propiedades del sistema y haga clic en Enviroment
  4. Encuentre la variable de SO y cambie el nombre como "TNS_ADMIN"

  5. Y cambie el valor como una "dirección de directorio de tnsnames"

  6. Reinicia el sistema.

  7. Congrulations


Esto se mencionó en un comentario a otra respuesta, pero quise moverlo a una respuesta real, ya que este también era el problema en mi caso y lo habría votado si hubiera sido una respuesta.

Estoy en Linux y el archivo tnsnames.ora no fue establecido por todos. Después de hacerlo legible, se conecta a través de tns trabajados localmente.

$ chmod +r tnsnames.ora


¡En mi caso es porque estaba en una PC x64 y aún usando el viejo Oracle 9i con los controladores de 32 bits!

Estoy usando SQL Reporting Services con una base de datos Oracle. El problema son los corchetes en el camino a Visual Studio (BIDS). A Oracle no le gustan las aplicaciones que comienzan en una ruta entre paréntesis:

RDBMS 10g XE problema con paréntesis en la ruta

Así que hice un archivo BAT para abrir Visual Studio con Progra ~ 2 como el nombre de ruta corto para "Archivos de programa (x86)".

Aquí está el contenido del archivo BAT:

rem Progra~2 is short path name for "Program Files (x86)" and works around an Oracle client bug that doesn''t like the ()''s in the path start /B "C:/Progra~2/Microsoft Visual Studio 9.0/Common7/IDE" "C:/Progra~2/Microsoft Visual Studio 9.0/Common7/IDE/devenv.exe"

Nombro este archivo BAT StartBIDS.BAT y lo coloco en el directorio:

"C: / Archivos de programa / Microsoft SQL Server / Start BIDS.bat"

Luego hago un atajo al archivo BAT en mi Escritorio y también a mi Menú de Inicio y cambio el ícono de Abreviaturas. Esto me permite abrir las aplicaciones TOAD, Visual Studio, BIDS y etc. que utilizo para trabajar con Oracle.

Actualizar:

Alternativamente hacer un cruce:

mklink /J "C:/Program Files (x86)/" "C:/Program Files x86/"

A continuación, elimine los corchetes en el acceso directo: