在没有管理员权限的情况下让 SQL Developer 在 Windows 上使用即时客户端?

Getting Sqldeveloper working with instantclient on Windows without admin privileges?

我已经在装有 Win10-64 位的企业 PC 上安装了 Sqldeveloper Version 19.1 64 位版本。

它与嵌入式 jdbc-client 一起工作正常,但我需要使用 Oracle OCI-client 让它工作。原因之一是更好地支持取消长 运行 查询。

使用 OCI 客户端(thick-driver)肯定需要像 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-Client 时,我收到另一个错误,即需要在任何其他之前定义到 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-专家。我想知道,为什么作为 Java-工具的 sqldeveloper 是 运行,但即时客户端说它无法创建 JVM。

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

同时,我已经解决了。

测试结果:

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-file(改编,因为路径名中有一些秘密信息):

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-file 的快捷方式,现在我可以简单地使用 CRTL-SHIFT-S ;-)

启动它

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

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

  1. 安装完成 SQL-开发人员,例如在 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 ;-)