Conectarse a una base de datos Oracle 10g con Microsoft ODBC para Oracle
Pregunta
Estoy intentando conectar con una base de datos Oracle 10g utilizando el construido en Microsoft ODBC para Oracle. Quiero utilizar una conexión dnsless, así que agarro mi cadena de conexión de www.connectionstrings.com .
Lo ideal es que no tendrá que configurar una entrada de DNS o una entrada de Oracle TNS, y puede que me equivoque, pero me pareció lo anterior habría que hacer para mí. Estoy recibiendo el siguiente:
ERROR [NA000] [Microsoft][ODBC driver for Oracle][Oracle]ORA-12514:
TNS:listener does not currently know of service requested in connect
descriptor
ERROR [IM006] [Microsoft][ODBC Driver Manager]
Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager]
The driver doesn't support the version of ODBC behavior that the
application requested (see SQLSetEnvAttr)."
Por lo que yo puedo decir en línea, otras personas han utilizado el controlador de Microsoft ODBC para Oracle para conectarse a 10g, pero tal vez me falta algo. Estoy conectando desde una aplicación vb.net por cierto.
Solución 2
No estoy seguro de cómo es kosher para responder a su propia pregunta, pero me encontré con una cadena de conexión que es más de lo que estoy buscando:
"Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=myserver)(PORT=1521))" & _
"(CONNECT_DATA=(SERVICE_NAME=servicename))); " & _
"uid=username;pwd=password;
Otros consejos
Con 10g, se puede utilizar el href="http://www.orafaq.com/wiki/EZCONNECT" rel="noreferrer"> EZConnect función Driver={Microsoft ODBC for Oracle};Server=myServer:1521/ORCL;Uid=myUsername;Pwd=myPassword;
Es necesario añadir una entrada en el archivo tnsnames.ora para el servicio al que desea conectarse. Alternativamente, se puede ir a la interfaz gráfica de usuario para ese archivo a
Start->Programs->Oracle->Configuration and Migration Tools->Net Configuration Assistant
y configurar la conexión de Oracle allí. Entonces, ODBC será capaz de resolver el nombre del servicio.