【问题标题】:Connect to an Oracle 10g database with Microsoft ODBC for Oracle使用 Microsoft ODBC for Oracle 连接到 Oracle 10g 数据库
【发布时间】:2009-04-23 15:11:40
【问题描述】:

我正在尝试使用内置的 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 应用程序连接。

【问题讨论】:

    标签: .net oracle oracle10g odbc ora-12514


    【解决方案1】:

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

    Driver={Microsoft ODBC for Oracle};Server=myServer:1521/ORCL;Uid=myUsername;Pwd=myPassword;
    

    【讨论】:

    • @Mac :通过 VBA 连接时出现同样的错误。我正在使用 cn.open 方法进行连接。我如何在 VBA 中使用您的代码?
    【解决方案2】:

    我不确定回答您自己的问题是否符合要求,但我找到了一个更符合我要求的连接字符串:

    "Driver={Microsoft ODBC for Oracle}; " & _
                                     "CONNECTSTRING=(DESCRIPTION=" & _
                                     "(ADDRESS=(PROTOCOL=TCP)" & _
                                     "(HOST=myserver)(PORT=1521))" & _
                                     "(CONNECT_DATA=(SERVICE_NAME=servicename))); " & _
                                     "uid=username;pwd=password;
    

    【讨论】:

      【解决方案3】:

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

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

      并在那里设置您的 oracle 连接。然后,ODBC 将能够解析服务名称。

      【讨论】:

      • 所以您是说 tnsnames.ora 是必需的,而您无法绕过它?这是否意味着也需要安装 oracle 驱动程序,或者 Microsoft ODBC 驱动程序会在 tnsnames.ora 文件中查找?
      • 是的,ODBC 只是通过通用 Microsoft 接口重定向 oracle 调用。您仍然需要安装 oracle 驱动程序并设置 odbc 将为您调用的 oracle 连接。使用 ODBC 的好处可以是你的应用在查看 oracle、ms access、sql server 等时具有更一致的界面。
      • @JosephStyons :我可以通过 SQL 开发人员连接 oralce。但是当我尝试通过 VBA 连接时,它显示 [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed 。如何解决这个问题?
      猜你喜欢
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 2013-09-01
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多