【问题标题】:Oracle Database connection from Eclipse not working来自 Eclipse 的 Oracle 数据库连接不起作用
【发布时间】:2022-02-12 02:22:51
【问题描述】:

Eclipse 版本:Neon.3 发布 (4.6.3)

在新建数据库连接配置文件/向导中,我选择 Oracle 作为数据库类型添加 ojdbc 8 jar 并输入在远程服务器上运行的 Oracle 实例的请求详细信息。

我在 SQL Developer 中输入服务器、端口和服务值(我可以在其中连接),但 Eclipse 的连接测试从未成功。

输入值后,它会以以下格式构造 JDBC URL(不可编辑): jdbc:oracle:thin:@server:port:service

错误信息: java.sql.SQLException:侦听器拒绝连接并出现以下错误: ORA-12505, TNS:listener 目前不知道连接描述符中给出的 SID

虽然我想直接提供jdbc URL“连接URL”字段不可编辑。

【问题讨论】:

  • 你提供的格式是host:port:SID,所以你需要指定SID,而不是服务名。我找不到关于这种格式的文档,但在一些文档中提到了它:onetwo。服务名称格式为host:port/service_name
  • @astentx,感谢您的建议和文档链接,尤其是“两个”,它确认 URL 格式适用于 SID。虽然我尝试使用 SID 也不起作用并给出错误:“java.sql.SQLRecoverableException:IO 错误:网络适配器无法建立连接”,可能是因为我正在尝试连接到远程服务器上运行的 Oracle 实例从我的笔记本电脑。根据您提供的链接,服务名称的 URL 格式应为 jdbc:oracle:thin:@//[host]:[tcpPort]/[service_name],但 Eclipse 向导也仅以 SID 格式生成服务名称。跨度>

标签: oracle eclipse jdbc


【解决方案1】:

经过更多挖掘后,在一份 Eclipse 错误报告中发现了它。感谢 Mike Hatherly 的解决方法,参考:https://bugs.eclipse.org/bugs/show_bug.cgi?id=382063#c3

Mike Hatherly 提供的解决方法: “我找到了一种解决方法。如果您导出数据库连接详细信息,则可以手动编辑属性 org.eclipse.datatools.connectivity.db.URL 以包含缺少的 '/',然后重新导入并覆盖当前连接。但是,这样做会将 Eclipse 中的连接属性显示为缺失值,尽管连接工作正常。"

因此,在导出之前,您将保存带有密码和所有内容的连接配置文件,并且导出未加密。以及使用ServiceName时正确的URL格式:jdbc:oracle:thin:@//server:port/ServiceName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多