代码之家  ›  专栏  ›  技术社区  ›  Gaidin

使用Microsoft ODBC for Oracle连接到Oracle 10g数据库

  •  4
  • Gaidin  · 技术社区  · 15 年前

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

    3 回复  |  直到 13 年前
        1
  •  9
  •   Mac    15 年前

    使用10g,您可以使用 EZCONNECT 特征。要连接到服务器myserver上名为orcl的Oracle实例,连接字符串如下所示:

    Driver={Microsoft ODBC for Oracle};Server=myServer:1521/ORCL;Uid=myUsername;Pwd=myPassword;
    
        2
  •  2
  •   Gaidin    15 年前

    我不确定回答你自己的问题有多公正,但我发现了一个连接字符串,这正是我要寻找的:

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

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

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

    在那里建立你的甲骨文连接。然后,ODBC将能够解析服务名。