【问题标题】:Oracle SQL Developer - Issue with JDBC DriverOracle SQL Developer - JDBC 驱动程序问题
【发布时间】:2017-07-15 05:25:46
【问题描述】:

我已经:

  • Windows 7 x64
  • 我的 11G Oracle 客户端如下 C:\Oracle\product\11.2.0\client_1
  • My SQL Developer(下载了包含 JDK 8 的工具包,但单独安装了 JSK 以防万一)目录如下 C:\sqldeveloper

当我尝试使用 TNS 连接时,我有

java.library.path 中没有 ocijdbc12

如果我转到设置 -> 数据库 -> 高级并手动选择我的 Oracle 目录,我会得到:

测试位于 C:\Oracle\product\11.2.0\client_1 的 Oracle Home 正在测试客户端目录 ... OK 正在测试加载 Oracle JDBC 驱动程序 ... OK 测试检查 Oracle JDBC 驱动程序版本... 失败:最低 需要驱动版本 11.2.0.3,指定的驱动版本是 11.2.0.1.0

所以我考虑升级 JDBC 驱动程序,但我无法使用检查更新功能,因为它似乎在我的虚拟机中被阻止。

我从 SQL 开发者目录中获取了 ojdbc7.jar 并将其复制到 C:\Oracle\product\11.2.0\client_1\jdbc\lib,现在我收到以下错误:

测试位于 C:\Oracle\product\11.2.0\client_1 的 Oracle Home 正在测试客户端目录 ... OK 正在测试加载 Oracle JDBC 驱动程序 ... OK Testing 检查 Oracle JDBC 驱动程序版本 ... OK Driver 版本:12.1.0.2.0 测试测试原生 OCI 库负载 ...

失败:加载本机 OCI 库时出错 本机 OCI 驱动程序 无法加载。系统属性java.library.path 包含 来自环境变量 PATH 的条目。检查它以验证
预期的原生库目录

C:\Oracle\product\11.2.0\client_1\bin 存在并且在任何 其他客户端安装。 java.library.path = C:\sqldeveloper\jdk\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Oracle\product\10.2.0\client_1\bin;C :\Oracle\product\11.2.0\client_1\bin;C:\Oracle\product\11.2.0\client_2;C:\Oracle\product\11.2.0\client_2\bin;C:\Windows\system32;C :\Windows;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ARQDISP\;C:\Program ;.

现在不知道我在做什么。你能帮忙吗?

【问题讨论】:

  • 您可以尝试从 Oracle 下载最新的 11g JDBC 驱动程序吗:oracle.com/technetwork/apps-tech/jdbc-112010-090769.html
  • @MickMnemonic 我下载什么以及如何安装它?
  • 链接在我上面的评论中。要安装,只需用新的 jar 替换现有的 jar,或者如果您使用 Maven,请更新 POM 中的版本。

标签: oracle jdbc oracle-sqldeveloper windows-7-x64


【解决方案1】:

我有类似的问题。从 sqldeveloper 4.0 迁移到 4.1,导入了我所有的连接,但在 4.1 中,我会得到“java.library.path 中没有 ocijdbc12”。 我打开了我当前的连接(右键单击任何连接并选择属性),所有连接类型都是 TNS。
“连接标识符”已通过在此处输入的连接网络别名进行检查。
我检查了“网络别名”复选框并选择了相同的名称,然后连接正常。
我回到 4.0 来检查我在那里的连接,似乎别名在选择了“连接标识符”的情况下工作正常,但在 4.1 中没有 我必须更新所有连接才能使用“网络别名”。

【讨论】:

    【解决方案2】:

    加载本机 OCI 库时出错无法加载本机 OCI 驱动程序,当我尝试连接到数据库时,我在 java.library.path 中没有得到 ocijdbc12

    对我来说,在我创建了一个新变量 ORACLE_HOME 并使用值 ....(安装 sql 开发人员的文件夹的路径)\jdk\jre 后,错误就解决了。然后我在 Path 变量 %ORACLE_HOME%\bin 的乞求处添加了。

    起初我创建了一个系统变量,它指向安装 dev express 的文件夹,但它不起作用

    【讨论】:

      【解决方案3】:

      它缺少驱动程序。所以就我而言,我从http://www.oracle.com/technetwork/topics/winx64soft-089540.html 安装了 Oracle 客户端 并相应地设置路径变量。

      这是一篇博文,展示了如何告诉 SQL Developer 在哪里以及使用哪个安装的客户端:

      https://www.thatjeffsmith.com/archive/2014/01/oracle-sql-developer-4-and-the-oracle-client/

      重新启动您的 SQL Developer。

      【讨论】:

        【解决方案4】:

        对于数据库,选择连接属性并将连接类型从 TNS 更改为 Basic 并提供连接的其他详细信息(服务名称/SID)为我解决了问题

        【讨论】:

          【解决方案5】:

          也许它有助于查看我关于类似主题的帖子的答案:

          How to get Sqldeveloper 19.1 64-bit working with instantclient_12_2 on Windows enterprise PC without admin privileges?

          提到的 .bat 文件显示了您所需要的一切。 如果您有管理员权限或更改任何环境变量的权限,那么不使用 .bat 文件可能是更好的方法。

          【讨论】:

            【解决方案6】:

            当我尝试使用 TNS 连接时,我有

            java.library.path 中没有 ocijdbc12

            我发现的东西既愚蠢又有趣。

            我得到了同样的错误,唯一的区别是什么时候可以,什么时候不可以……

            the TNS definition in tnsnames.ora
            

            只需添加(如果它消失了可能再次添加)数据库的 TNS 定义,例如:

            XE.WORLD=
              (DESCRIPTION=
                (ADDRESS=
                  (PROTOCOL=TCP)
                  (HOST=localhost)
                  (PORT=1521)
                )
                (CONNECT_DATA=
                  (SERVICE_NAME=XE.WORLD)
                  (SERVER = DEDICATED)
                )
              )
            

            并重新启动 SQL Developer。

            连接配置将保留名称 (XE.WORLD),即使它已经从 tnsnames.ora 中消失。如果它不存在,则在尝试连接时,它将返回该误导性错误。

            我的设置:SQL Developer 4.1.4.21,ojdbc8.jar,连接到 Oracle 19c。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-09-27
              • 2013-08-16
              • 2010-10-05
              • 2012-03-10
              • 2011-06-08
              • 2011-04-21
              相关资源
              最近更新 更多