有时在输理复杂的SQL或pl/sql代码逻辑时最好是格式化一下文本,当然我们有toad或plsql developer等其它第三方客户端程序,如果能在数据库内容可以格式化一下SQL更佳,当前数据库12C以后的的软件安装介质中已经包含了Oracle SqlCL或Oracle SQL Developer, 使用这两个自带的任一工具中的java lib的 dbtools-common.jar 中的 oracle.dbtools.app.Format 函数就可以实现。
下面是实际安装步骤,环境19.3
19.3中自带的发现无法使用
[oracle@oel7db1 lib]$ loadjava -u anbob/anbob@cdb1pdb1 /u01/app/oracle/product/19.2.0/db_1/sqldeveloper/sqldeveloper/lib/dbtools-common.jar
[oracle@oel7db1 lib]$ sqlplus anbob/anbob@cdb1pdb1
创建3#的java函数时会提示下面的错误
Warning: Java created with compilation errors.
SSQL> show error
Errors for JAVA SOURCE "SQLFORMATTER":
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 Note: SQLFORMATTER uses or overrides a deprecated API.
0/0 ORA-29534: referenced object ANBOB.oracle/dbtools/app/Format
could not be resolved
0/0 Note: Recompile with -Xlint:deprecation for details.
下载新版的SQLCL https://www.oracle.com/tools/downloads/sqlcl-downloads.html 使用目录里的dbtools-common.jar 可以解决。 我这里把sqlcl放到了$ORACLE_HOME下
loadjava -u anbob/anbob@cdb1pdb1 /u01/app/oracle/product/19.2.0/db_1/sqlcl/lib/dbtools-common.jar