Подключение к базе данных Oracle 10g с помощью Microsoft ODBC для Oracle
Вопрос
Я пытаюсь подключиться к базе данных Oracle 10g, используя встроенный драйвер Microsoft ODBC для Oracle.Я хочу использовать соединение без dnsl, поэтому я беру свою строку подключения из www.connectionstrings.com.
В идеале мне не нужно будет настраивать запись DNS или Oracle TNS, и я могу ошибаться, но я думал, что описанное выше сделает это за меня.Я получаю следующее:
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)."
Насколько я могу судить онлайн, другие люди использовали драйвер Microsoft ODBC для Oracle для подключения к 10g, но, возможно, я что-то упускаю.Я подключаюсь из приложения vb.net кстати.
Решение 2
Я не уверен, насколько кошерно отвечать на ваш собственный вопрос, но я нашел строку подключения, которая больше соответствует тому, что я ищу:
"Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=myserver)(PORT=1521))" & _
"(CONNECT_DATA=(SERVICE_NAME=servicename))); " & _
"uid=username;pwd=password;
Другие советы
С 10g вы можете использовать EZCONNECT ( ПОДКЛЮЧЕНИЕ ) особенность.Чтобы подключиться к экземпляру Oracle с именем ORCL на сервере myServer, строка подключения должна выглядеть следующим образом :
Driver={Microsoft ODBC for Oracle};Server=myServer:1521/ORCL;Uid=myUsername;Pwd=myPassword;
Вам необходимо добавить запись в ваш файл tnsnames.ora для службы, к которой вы хотите подключиться.В качестве альтернативы вы можете перейти к графическому интерфейсу для этого файла по адресу
Start->Programs->Oracle->Configuration and Migration Tools->Net Configuration Assistant
и настройте там свое подключение к oracle.Затем ODBC сможет разрешить имя службы.