简体   繁体   English

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

[英]Connect to an Oracle 10g database with Microsoft ODBC for Oracle

I'm trying to connect to an Oracle 10g database using the built in Microsoft ODBC for Oracle driver. 我正在尝试使用内置的Microsoft ODBC for Oracle驱动程序连接到Oracle 10g数据库。 I want to use an dnsless connection, so I grab my connection string from www.connectionstrings.com . 我想使用无连接的连接,所以我从www.connectionstrings.com获取连接字符串。

Ideally I won't have to setup a DNS entry or an Oracle TNS entry, and I may be mistaken, but I thought the above would do that for me. 理想情况下,我不需要设置DNS条目或Oracle TNS条目,我可能会弄错,但我认为上面的内容会对我有用。 I'm getting the following: 我得到以下内容:

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)."

As far as I can tell online, other people have used the Microsoft ODBC for Oracle driver to connect to 10g, but maybe I'm missing something. 据我所知,其他人使用Microsoft ODBC for Oracle驱动程序连接到10g,但也许我错过了一些东西。 I'm connecting from a vb.net application by the way. 顺便说一句,我是从vb.net应用程序连接的。

With 10g, you can use the EZCONNECT feature. 使用10g,您可以使用EZCONNECT功能。 To connect to an Oracle instance named ORCL on the server myServer, the connection string would look like this : 要连接到服务器myServer上名为ORCL的Oracle实例,连接字符串将如下所示:

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

I'm not sure how kosher it is to answer your own question, but I found a connection string that is more what I'm looking for: 我不确定回答你自己的问题是多么犹豫,但我找到了一个更符合我要求的连接字符串:

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

You need to add an entry in your tnsnames.ora file for the service to which you want to connect. 您需要在tnsnames.ora文件中为要连接的服务添加一个条目。 Alternatively, you can go to the gui interface for that file at 或者,您可以转到该文件的gui界面

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

and set up your oracle connection there. 并在那里建立你的oracle连接。 Then, ODBC will be able to resolve the service name. 然后,ODBC将能够解析服务名称。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM