我有一個程序想連接到我們網絡上的oracle數據庫。這個程序是用java編寫的,必須使用jdbc。我們的PC設置爲使用sqlnet.ora文件來確定如何解決的順序。我們所有的PC首先檢查ldap(其中ldap文件在所有這些PC上指向ldap服務器),然後使用tnsnames.ora文件,但現在這個文件是空的,所以基本上我想使用ldap,但是通過SQLNET.ORA。任何想法的連接將看起來像url參數?jdbc使用sqlnet.ora
回答
的oracle.net.tns_admin系統屬性必須設置爲tnsnames.ora文件的位置,以便JDBC Thin驅動程序可以找到tnsnames.ora文件。例如:
System.setProperty("oracle.net.tns_admin", "c:\\Temp");
String url = "jdbc:oracle:thin:@tns_entry";
DriverManager.getConnection(url, ...);
,因爲系統屬性的,Thin驅動程序能夠找到tnsnames.ora文件,從而可以解決該URL指定的TNS名稱。由於瘦客戶端通常打算在沒有的Oracle客戶端安裝下工作,因此默認情況下未啓用此功能。
據我所知,你只需要需要tnsnames.ora,即使在指定TNS名稱時使用瘦驅動程序也不需要Oracle客戶機。
如果你的程序不允許設置系統屬性,你有兩個選擇:
- 啓動程序
java -Doracle.net.tns_admin=c:/foobar ...
- 時集,其中包含
-Doracle.net.tns_admin=c:/foobar
變量JAVA_TOOLS_OPTIONS
的環境中指定。然後將由任何 Java程序被拾起automtically
不能使用TNS名稱。這些PC上的TNS名稱文件是空的。首先需要使用sqlnet.ora來查看ldap文件。此外,這是通過登錄類型屏幕爲應用程序無代碼連接,所以沒有在哪裏添加屬性。 – user441521
通過此程序的連接配置屏幕沒有設置該屬性的位置。 – user441521
@ user441521:這些機器上是否安裝了Oracle客戶機(即時客戶機或普通客戶機)?在這種情況下,您可以使用OCI驅動程序,請參閱此處:http://docs.oracle.com/cd/E11882_01/java.112 /e16548/instclnt.htm#autoId16 –
- 1. sqlnet.ora SQLNET.AUTHENTICATION_SERVICES =(NTS)
- 2. 使用JDBC
- 3. 使用JDBC
- 4. 使用JDBC河
- 5. 使用JDBC
- 6. Android:使用JDBC?
- 7. 需要JDBC,但不需要使用jdbc
- 8. 使用jdbc使用'dual'表
- 9. 如何使用JDBC
- 10. 嘗試使用JDBC
- 11. 在JDBC使用Class.forName
- 12. 錯誤使用JDBC
- 13. 如何使用JDBC
- 14. 一個使用JDBC
- 15. 使用JDBC與persistence.xml
- 16. 如何使用JDBC
- 17. 如何使用JDBC
- 18. 無法使用JDBC
- 19. JDBC使用Clojure的
- 20. 在Eclipse中使用JDBC連接到Oracle XE與myBatis使用JDBC
- 21. tocollection()方法使用的JDBC JDBC行集使用
- 22. 強制Java 7只使用JDBC 3.0,而不使用JDBC 4.0
- 23. 使用jdbc asyn或jdbc(默認阻止)使用Reactive Slick?
- 24. 問題與embeddedmap使用JDBC
- 25. JDBC中的Types.NULL的使用
- 26. Hibernate如何使用JDBC?
- 27. 使用JDBC的子查詢?
- 28. 在servlets中使用JDBC
- 29. 使用JDBC連接到MySQL
- 30. mule使用Message Enricher的JDBC
您是否在使用Type 4(thin)JDBC驅動程序?或者Type 2(OCI)JDBC驅動程序?如果您想使用Oracle客戶端的網絡配置文件,則需要使用OCI驅動程序。 –
從來沒有這樣做過,所以不確定。我們在所有用戶PC上都安裝了Oracle客戶端11x,因此認爲OCI驅動程序帶有它? – user441521