【问题标题】:Getting Sqldeveloper working with instantclient on Windows without admin privileges?让 Sql Developer 在没有管理员权限的情况下在 Windows 上使用即时客户端?
【发布时间】:2019-07-19 13:45:52
【问题描述】:

我已经在Win10-64bit的企业PC上安装了Sqldeveloper Version 19.1 64-bit Version。

它适用于嵌入式 jdbc 客户端,但我需要使用 Oracle OCI 客户端让它工作。一个原因是更好地支持取消长时间运行的查询。

使用 OCI 客户端(厚驱动程序)肯定需要像 Instantclient_12_2 这样的客户端。 我的工作站没有管理员权限,因此将完整的 instantclient_12_2 复制到企业 PC。

由于不允许我自己更改 %PATH%,我创建了一个带有所需设置的 start.bat 文件,因为没有它,它也将无法工作(已经尝试过)。

PATH="C:\Users\myuser\OneDrive\Oracle\instantclient_12_2";%JAVA_HOME%;%PATH%
C:\Users\myuser\OneDrive\Oracle\sqldeveloper64\sqldeveloper.exe

当我尝试在不进行此更改的情况下配置另一个 Oracle 客户端时,我收到另一个错误,即需要先定义到 Instantclient 的 PATH。

现在,使用这个 bat 文件启动 sqldeveloper 可以正常工作。可以使用内部 jdbc 客户端建立连接。

然后,我在 SQLdeveloper (Preferences/Database/Advanced) 中配置了 Oracle 客户端并选择了 instantclient 目录。

按“测试”按钮打开消息日志“Oracle 客户端测试结果 - 日志”并显示错误。

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occured, Program will exit.
Unrecognized option: -

现在,我迷路了,因为我不是 Java 专家。我想知道,为什么 sqldeveloper 作为 Java 工具正在运行,但即时客户端说它无法创建 JVM。

我使用 OCI-client 的原因是,它具有例如更好地支持用户中断。

【问题讨论】:

  • 找一个管理员来更新你的 PATH .. 在设置之前它不是一个可用的即时客户端
  • 感谢 Jeff,但我无法为此获得管理员,因为该公司非常庞大且对此类要求非常严格。使用 BAT 文件的解决方法绕过了此要求。前段时间我已经在旧版本中使用过这个技巧。它确实有效。测试成功了,但现在我无法让它再次工作。
  • 你的 bat 文件里还有什么?
  • 目前不超过您在请求中可以看到的。只需 PATH 并使用绝对路径启动 sqld。

标签: windows oracle-sqldeveloper oracle-call-interface instantclient thick-client


【解决方案1】:

没有管理员权限,也没有永久更改 %PATH% 环境的权限,您只需要在某处安装整个目录并添加一个 .BAT 文件,该文件会在调用 SQL-Developer 之前临时更改环境。

  1. 安装完整的 SQL-Developer,例如在C:\myprogs\sqldeveloper
  2. 在某处安装即时客户端,例如在C:\myprogs\instantclient_12_2
  3. 创建 .BAT 文件,例如C:\myprogs\sqldeveloper\startsqldev.bat 内容如下:
set PATH=C:\myprogs\instantclient_12_2;%PATH%
REM start sqldeveloper
"C:\myprogs\sqldeveloper\sqldeveloper.exe"

它也适用于 > 20 的版本;-)

【讨论】:

    【解决方案2】:

    同时,我已经解决了。

    测试结果:

    Testing the Instant Client located at C:\Users\myuser\Oracle\instantclient_12_2
    Testing client directory ... OK
    Testing loading Oracle JDBC driver ... OK
    Testing checking Oracle JDBC driver version ... OK
      Driver version: 12.2.0.1.0
    Testing testing native OCI library load ... OK
    Success! 
    

    原因如下错误:

    1. 忘记了变量赋值前面的“set”(因为我通常使用 Unix)
    2. 在变量赋值期间使用引号,作为值的一部分(也不同于 UNIX)。
    3. 添加了 JAVA_HOME 和 JRE_PATH

    请参阅下面我的完整 bat 文件(已改编,因为路径名中有一些秘密信息):

    REM Optional: setting of USE_OS_DATETIME_FORMAT changes DATE-Format
    set USE_OS_DATETIME_FORMAT=1
    set PATH=%USERPROFILE%\OneDrive - myCompany\Oracle\instantclient_12_2;%JAVA_HOME%;%PATH%
    
    REM start your preferred sqldeveloper
    "%USERPROFILE%\OneDrive - myCompany\Oracle\sqldeveloperx64.20.2\sqldeveloper.exe"C:\Users\myuser\OneDrive - myCompany\Oracle\sqldeveloperx64.19.1\sqldeveloper.exe"
    

    此外,我已经为 bat 文件添加了一个快捷方式,现在我可以简单地使用 CRTL-SHIFT-S 启动它;-)

    顺便说一句:同样的解决方案在 Win10 上也可以正常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 2021-07-10
      • 2011-08-24
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多