如果使用Oracle钱包,那么正确的JDBC URL语法是什么?

时间:2011-10-03 11:08:52

标签: oracle jdbc

有2种URL语法,旧语法只适用于SID,新语法适用于Oracle服务名称 旧语法

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

新语法

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

如果使用Oracle钱包,那么正确的JDBC URL语法是什么? 根据{{​​3}},应使用以下URL语法:

jdbc:oracle:thin:/@db_alias  

但是我可以看到以下网址也有效:

jdbc:oracle:thin:@db_alias

哪些语法正确?

1 个答案:

答案 0 :(得分:22)

当您使用带有JDBC字符串的Oracle Wallet时,允许两种语法,只要您的“db_alias”显然在您的电子钱包商店中设置。

现在,就使用Oracle Wallet的SQL * Plus而言,Oracle Wallet允许的唯一格式是:

/@db_alias

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

将Oracle Wallet与JDBC瘦驱动程序一起使用

  1. 配置Oracle Wallet as usual(随Oracle Database Client提供),在tnsnames.ora和sqlnet.ora文件中创建相应的条目以及钱包中的凭据条目
  2. 将以下JAR添加到Java类路径中。您应该从Oracle 11g客户端获取这些内容,并且可以在客户端安装所在的“jdbc”和/或“jlib”目录中找到它们。
    • Oracle JDBC驱动程序 - ojdbc6.jar
    • Oracle电子钱包 - oraclepki.jar
    • Oracle安全证书 - osdt_cert.jar
    • Oracle安全核心 - osdt_core.jar
  3. 使用以下系统属性启动Java应用程序,指向相应的TNS和wallet目录:
    • -Doracle.net.tns_admin=C:\myTNSdir
    • -Doracle.net.wallet_location=C:\mywalletdir
  4. 然后,您可以在应用程序中使用瘦JDBC连接字符串,如下所示:jdbc:oracle:thin:/@MY_WALLET_DB_ENTRY