2011-10-03 60 views
7

有2个URL语法,旧语法只适用于SID,新语法与Oracle服务名称一起使用。
旧语法如果使用Oracle钱包,那么正确的JDBC URL语法是什么?

jdbc:oracle:thin:@[HOST][:PORT]:SID 

新语法

jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE 

如果甲骨文钱包使用什么是正确的JDBC URL语法
this article以下URL语法应使用:

jdbc:oracle:thin:/@db_alias 

但我可以看到下面的URL也工作:

jdbc:oracle:thin:@db_alias 

其中这些语法是正确的?

回答

19

当您使用带有JDBC字符串的Oracle Wallet时,这两种语法都允许使用,只要您的电子钱包商店中明显安装了“db_alias”即可。

现在,只要使用SQL * Plus与Oracle钱包,允许与Oracle钱包的唯一格式是:

/@db_alias 

顺便说一句,这篇文章您引用(和others)指定你只能连接如果使用OCI驱动程序,则使用JDBC,而不是瘦客户机。这通常是因为Java不知道Oracle TNS和SQLNET文件。事实上这不是真的;你可以用可以连接使用JDBC瘦驱动程序与最新的Oracle客户端& JDBC驱动程序,但它只是需要一些设置。请参阅http://tech.shopzilla.com/2011/09/oracle-wallet-with-thin-driver-with-connection-pool-with-database-timeouts/了解相关信息,以及下方的简短摘要。

使用Oracle钱包与JDBC瘦驱动

  1. 配置Oracle钱包as usual(随Oracle数据库客户端),创建你的和tnsnames.ora的SQLNET.ORA文件中的相应条目以及钱包中的凭证条目
  2. 将以下JAR添加到Java类路径中。你应该从Oracle 11g客户端得到这些,他们可以在“JDBC”和/或“jlib”的客户机安装在目录中找到是
    • 甲骨文JDBC驱动程序 - ojdbc6.jar
    • 甲骨文钱包 - oraclepki.jar
    • Oracle安全性证证书 - osdt_cert.jar
    • Oracle安全性的核心 - osdt_core.jar
  3. 先从以下系统属性Java应用程序,指着你们各自TNS和钱包目录:
    • -Doracle.net.tns_admin=C:\myTNSdir
    • -Doracle.net.wallet_location=C:\mywalletdir
  4. 然后你就可以在你的应用程序中使用薄的JDBC连接字符串,像这样:jdbc:oracle:thin:/@MY_WALLET_DB_ENTRY
+1

Wokred罚款没有任何问题。谢谢大卫! –

+0

我想从hibernate应用程序,它应该工作的相同。但我越来越oracle.net.ns.NetException:SO异常生成 \t at oracle.net.resolver.AddrResolution.resolveAddrTree(AddrResolution.java:629) – Betta

相关问题