2009-04-23 195 views
4

我正尝试使用内置的Microsoft ODBC for Oracle驱动程序连接到Oracle 10g数据库。我想使用dnsless连接,所以我从www.connectionstrings.com获取连接字符串。使用Microsoft ODBC for Oracle连接到Oracle 10g数据库

理想情况下,我不需要设置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)." 

至于我可以在网上告诉,其他人都使用了微软的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; 
0

您需要在tnsnames.ora文件中为要连接的服务添加条目。或者,你可以去那个文件的GUI界面,在

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

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

+0

所以你说tnsnames.ora是必需的,你无法绕过它吗?这是否意味着也需要安装oracle驱动程序,或者Microsoft ODBC驱动程序是否会在tnsnames.ora文件中查找? – Gaidin 2009-04-23 15:18:33

+0

是的,ODBC只是通过通用Microsoft接口对Oracle调用进行重定向。您仍然需要安装oracle驱动程序并设置odbc将为您调用的oracle连接。使用ODBC的优点可以是,当您查看oracle,ms访问,sql server等时,您的应用程序具有更一致的界面。 – JosephStyons 2009-04-23 15:29:26

9

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

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