如何在 SQL 开发人员目录之外 运行 sqlcl
How to run sqlcl outside of SQL Developer directory
我已经安装了Oracle客户端WINDOWS.X64_213000_client.zip
我想在我的项目目录中使用捆绑的 sql.exe
到 运行 SQL 脚本。
sql.exe
位于我已添加到路径环境变量中的以下目录中:
E:\Oracle_21c\app\client\product.0.0\client_1\sqldeveloper\sqldeveloper\bin
jar 文件在
E:\Oracle_21c\app\client\product.0.0\client_1\sqldeveloper\sqldeveloper\lib
以下作品:
cd E:\Oracle_21c\app\client\product.0.0\client_1\sqldeveloper
\sqldeveloper\bin\sql -LOGON user/password@tns_db_alias
select 'a' as a from dual;
但我只能从该目录 运行 它,如果我尝试从路径目录 运行 sql.exe
不将其限定为 bin\sql
那么一个例外被抛出。
>sql -LOGON user/password@tns_db_alias
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hc/core5/http/ParseException
我该怎么做才能使 sql.exe
运行 可以通过路径访问?
这样我就可以在任何任意目录中,例如\projects\myproj\
运行 脚本使用 sql.exe
cd \projects\myproj\
sql -LOGON user/password@tns_db_alias my_db_script.sql
有一个错误。
当我尝试从这个发行版 运行 包含的 'sql' (SQLcl) 程序时 -
c:\oracle\client\product.0.0\client_1\bin>sql /nolog
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hc/core5/http/ParseException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at oracle.dbtools.raptor.newscriptrunner.CommandRegistry.addListener(CommandRegistry.java:75)
at oracle.dbtools.raptor.newscriptrunner.CommandRegistry.addForAllStmtsListener(CommandRegistry.java:649)
at oracle.dbtools.commands.NetCommands.registerCommands(NetCommands.java:28)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.initSqlcl(SqlCli.java:196)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.runSqlcl(SqlCli.java:962)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.main(SqlCli.java:369)
Caused by: java.lang.ClassNotFoundException: org.apache.hc.core5.http.ParseException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 10 more
转到 oracle.com/sqlcl - 下载独立 Zip。放在自己的目录下,运行就好了。
我们将尽快更新 21c 发行版以修复此客户端下载问题。
解决方法,更新您的路径以包含 ..product.0.0\client_1\sqldeveloper\sqldeveloper\bin
如果你 运行 从这个目录中取出 sql.exe,它就可以工作 -
我已经安装了Oracle客户端WINDOWS.X64_213000_client.zip
我想在我的项目目录中使用捆绑的 sql.exe
到 运行 SQL 脚本。
sql.exe
位于我已添加到路径环境变量中的以下目录中:
E:\Oracle_21c\app\client\product.0.0\client_1\sqldeveloper\sqldeveloper\bin
jar 文件在
E:\Oracle_21c\app\client\product.0.0\client_1\sqldeveloper\sqldeveloper\lib
以下作品:
cd E:\Oracle_21c\app\client\product.0.0\client_1\sqldeveloper
\sqldeveloper\bin\sql -LOGON user/password@tns_db_alias
select 'a' as a from dual;
但我只能从该目录 运行 它,如果我尝试从路径目录 运行 sql.exe
不将其限定为 bin\sql
那么一个例外被抛出。
>sql -LOGON user/password@tns_db_alias
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hc/core5/http/ParseException
我该怎么做才能使 sql.exe
运行 可以通过路径访问?
这样我就可以在任何任意目录中,例如\projects\myproj\
运行 脚本使用 sql.exe
cd \projects\myproj\
sql -LOGON user/password@tns_db_alias my_db_script.sql
有一个错误。
当我尝试从这个发行版 运行 包含的 'sql' (SQLcl) 程序时 -
c:\oracle\client\product.0.0\client_1\bin>sql /nolog
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hc/core5/http/ParseException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at oracle.dbtools.raptor.newscriptrunner.CommandRegistry.addListener(CommandRegistry.java:75)
at oracle.dbtools.raptor.newscriptrunner.CommandRegistry.addForAllStmtsListener(CommandRegistry.java:649)
at oracle.dbtools.commands.NetCommands.registerCommands(NetCommands.java:28)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.initSqlcl(SqlCli.java:196)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.runSqlcl(SqlCli.java:962)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.main(SqlCli.java:369)
Caused by: java.lang.ClassNotFoundException: org.apache.hc.core5.http.ParseException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 10 more
转到 oracle.com/sqlcl - 下载独立 Zip。放在自己的目录下,运行就好了。
我们将尽快更新 21c 发行版以修复此客户端下载问题。
解决方法,更新您的路径以包含 ..product.0.0\client_1\sqldeveloper\sqldeveloper\bin
如果你 运行 从这个目录中取出 sql.exe,它就可以工作 -