4

我正在尝试使用内置的 Microsoft ODBC for Oracle 驱动程序连接到 Oracle 10g 数据库。我想使用 dnsless 连接,所以我从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 for Oracle 驱动程序连接到 10g,但也许我遗漏了一些东西。顺便说一句,我正在从 vb.net 应用程序连接。

4

3 回答 3

9

使用 10g,您可以使用EZCONNECT功能。要连接到服务器 myServer 上名为 ORCL 的 Oracle 实例,连接字符串应如下所示:

Driver={Microsoft ODBC for Oracle};Server=myServer:1521/ORCL;Uid=myUsername;Pwd=myPassword;
于 2009-04-23T15:29:38.557 回答
2

我不确定回答您自己的问题是多么洁净,但我发现了一个连接字符串,这更像是我正在寻找的:

"Driver={Microsoft ODBC for Oracle}; " & _
                                 "CONNECTSTRING=(DESCRIPTION=" & _
                                 "(ADDRESS=(PROTOCOL=TCP)" & _
                                 "(HOST=myserver)(PORT=1521))" & _
                                 "(CONNECT_DATA=(SERVICE_NAME=servicename))); " & _
                                 "uid=username;pwd=password;
于 2009-04-23T20:38:15.740 回答
0

您需要在 tnsnames.ora 文件中为要连接的服务添加一个条目。或者,您可以转到该文件的 gui 界面:

Start->Programs->Oracle->Configuration and Migration Tools->Net Configuration Assistant

并在那里建立你的 oracle 连接。然后,ODBC 将能够解析服务名称。

于 2009-04-23T15:16:56.217 回答