2012-06-19 9 views
5

Quiero conectarme con Oracle (11g) usando unixODBC. Quiero SOLAMENTE la cadena de conexión para especificar toda la información de base de datos/fuente de datos, y los archivos ODBC INI (/etc/odbc.ini y /etc/odbcinst.ini) para contener solo información genérica del controlador como dónde encontrar el '.so' etc. es decir, quiero que sean estático. Quiero hacer esto para poder obtener la cadena de conexión del usuario externamente y conectarme a la fuente de datos sin tener que modificar ninguno de los archivos INI o cualquier otra configuración en el disco.unixODBC/Oracle: ¿Cómo especifico toda la información del origen de datos SOLAMENTE en la cadena de conexión y no en los archivos odbc * .ini

Todos los ejemplos que vi me hacen definir la información del servidor en /etc/odbc.ini así:

[myDSNname] 
Driver = OracleODBC-11g 
DSN = OracleODBC-11g 
ServerName = //xxx.xxx.xxx.xxx:1521/SID_NAME 
UserID = my_user 
Password = my_pass 

Ahora, me di cuenta de cómo obtener el ID de usuario y contraseña a cabo en la cadena de conexión mediante la adición de "UID=my_user;PWD=my_pass" a la conexión cadena, y los quité de odbc.ini. Mi alegría pasó rápidamente cuando no pude encontrar la forma de obtener ServerName de odbc.ini y en la cadena de conexión también. Entonces, ¿cómo hago esto? ¿Y hay alguna manera de deshacerse del DSN en odbc.ini en total, y tener solo el Driver de odbcinst.ini en la cadena de conexión, como lo estamos haciendo para MySQL?

Editar: intentar cualquiera de las cadenas de conexión de www.connectionstrings.com que no parecen requerir TNS o un DSN, incliuding EZCONNECT variantes, todas me dan:

[HY000] [unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified 
    (12162) (SQLDriverConnectW) 
+0

http://www.connectionstrings.com/oracle#p17 –

+0

@Brian - no, no puedo hacer que ninguno funcione. Siempre obtengo: '[HY000] [unixODBC] [Oracle] [ODBC] [Ora] ORA-12162: TNS: el nombre del servicio de red está incorrectamente especificado' –

+0

No use una variante de nombres de tns y/o asegúrese de tener un entrada en su archivo de nombres de tns. –

Respuesta

5

sólo tiene que utilizar Dbq = dirección: 1521/orcl, y obtendrá lo que quiera

+1

¡Esto fue mágico! – Alok

Cuestiones relacionadas