我試圖使用Oracle JDBC瘦驅動程序連接到Oracle(11.2.0.2.0)數據庫(ojdbc6.jar for 11.2.0.2.0)和下面的JDBC URL語法:如何使用帶有TNSNames的JDBC瘦驅動程序連接Oracle數據庫別名語法
jdbc:oracle:thin:@abcd
其中 'ABCD' 在我的tnsnames.ora文件中定義如下圖所示:
abcd, abcd.world, abcd.dk.xyz.com =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd.dk.xyz.com)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = abcd)
)
)
我所提供的VM選項-Doracle.net.tns_admin=/etc/tnsnames.ora
按Oracle® Database JDBC Developer's Guide and Reference。
我收到以下錯誤,當我運行應用程序:
Listener refused the connection with the following error:
ORA-12504, TNS:listener was not given the SID in CONNECT_DATA
但是當我刪除別名abcd.world和abcd.dk.xyz.com從tnsnames.ora中,我的應用程序能夠連接到數據庫。
當tnsnames.ora文件中有多個別名時,ojdbc驅動程序是否存在問題?
我的JDK版本是1.6.0_31。
感謝, VJ
oracle.net.tns_admin應指向到一個目錄不進一個文件。所以它應該是'-Doracle.net.tns_admin =/etc'。另請注意,數據庫集羣可能具有多個主機名,另外還有數十個DBA可能想要設置的連接參數。 tnsnames.ora真的應該是首選的方式。 JDBC網址太「愚蠢」了。 – ibre5041