2013-06-12 114 views
0

我收到此錯誤,嘗試在Windows 7 32位上使用Oracle Instant Client安裝程序在ODBC DSN上執行測試連接。我有它在Vista 32位的另一臺機器上工作。使用Oracle Instant Client時出現ORA-12154錯誤

信息:
1.目錄結構是:c:\ oracle \ instantclient_11_2。 instantclient_11_2目錄中的基本客戶端和即時客戶端文件,就像在工作機器上一樣。
2. C:\ Oracle和C:在系統路徑
3.增加TNS_ADMIN到系統路徑\ ORACLE \ instantclient_11_2並指出在爲c:\ ORACLE
4. tnsnames.ora中從工作機和在複製c:\ oracle
5. sqlnet.ora位於c:\ oracle。工作副本只有「TCP.CONNECT_TIMEOUT = 5」作爲條目,但我嘗試在不工作時添加:NAMES.DIRECTORY_PATH =(LDAP,TNSNAMES,HOSTNAME)
6.我可以telnet到oracle服務器和1521端口(在tnsnames.ora中定義)。

還有什麼要檢查?

+0

什麼是您用於DSN的連接標識符;例如,它是TNS別名還是簡易連接字符串? 'sqlnet.ora'現在是否與工作機器上的一致? –

+0

- 我只是在ODBC管理員中設置DSN,在tnsnames.ora中指定TNS服務名稱。 sqlnet.ora是相同的 - 正如我在工作之上的狀態只有一行。 – urbanmojo

+0

這裏是tnsnames.ora文件內容,我在DSN指定MIADM:'ABCDM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 172.99。 99.99) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = MIADM) ) )' – urbanmojo

回答

0

如果您在tnsnames.ora正如您在評論中所述,那麼您在DSN中使用了錯誤的值。您需要在DSN中使用TNS別名,即ABCDM。您不能直接引用服務名稱,除非您碰巧也將其用作別名。

+0

好的,那有效。奇怪的是,我正在使用舊機器上的「服務名稱」 - MIADM。我檢查了舊機器上tnsnames.ora的其他副本,以防我丟失了某些東西。沒有意義。爲什麼會這樣? – urbanmojo

+0

@ user2281976 - 我沒有真正使用ODBC,但是您確定兩臺機器都使用相同的DSN驅動程序,並且舊的實際上是使用TNS別名 - 它沒有指定主機和端口直接連接,在這種情況下,它將使用服務名稱「MIADM」?我想知道是否有人設置了類似的問題,並最終繞過'tnsnames.ora'。否則,不知道我害怕* 8-) –

+0

我是一個誰設置另一個...沒有繞過tnsnames.ora。我通常使用JDBC,但在這種情況下必須使用ODBC .... :-( – urbanmojo

0

我們發現在調用它的應用程序安裝在Program Files(x86)目錄中時會返回錯誤。在該文件夾外重新安裝該程序將清除該錯誤。不確定爲什麼Oracle即時客戶端無法在那裏安裝程序。

相關問題