2009-04-23 189 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;