我正在使用一个应用程序,该应用程序需要访问我的oracle数据库来对我的数据执行一些任务。
该应用程序需要两个属性,它们是:
d2rq:jdbcDSN
JDBC 数据库 URL。这是一个格式为 jdbc:subprotocol:subname 的字符串。对于MySQL数据库,这类似于jdbc:mysql://hostname:port/dbname。其他数据库的示例 #
d2rq:jdbcDriver
数据库的 JDBC 驱动程序类名。与 d2rq:jdbcDSN 一起使用。示例:com.mysql.jdbc.Driver for MySQL。#
我想连接到具有此版本的 Oracle 数据库
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
通常,我使用SQL developer
应用程序连接到我的oracle数据库,我只是在其中设置:
- 主机名
- 用户名和密码
- 服务名称
- 图式
现在要从这个新应用程序(现在是 sql 开发人员)连接到我的数据库,我需要这样做(从此页面 http://www.devx.com/tips/Tip/28818)
jdbc:oracle:thin:@<HOST>:<PORT>:<SID>
oracle.jdbc.driver.OracleDriver
所以我将该模板更改为:
jdbc:oracle:think:@HostName:port:ServiceName
我将ojdbc6.jar
复制到 bin 文件夹
当我运行时,我收到此错误:
与 jdbc:oracle:thin:@HostName:Porto:ServiceName 的数据库连接失败(用户:用户名):侦听器拒绝连接,并出现以下错误: ORA-12505,TNS:侦听器当前不知道连接说明中给出的 SID
听起来 SID 应该替换为服务名称。(我不确定)您对如何解决它有任何想法以及我所做的是否正确吗?
当然,出于隐私原因,我隐藏了真实的数据库,主机和密码,所以请执行我
我发现了错误
应该是这样的
JDBC:Oracle:Thin:@hostname:Porto/ServiceName
不
JDBC:Oracle:Thin:@hostname:Porto:ServiceName