当您使用Oracle DBMS_
软件包遇到错误时,将提供一个线号以进行故障排除。但是,大多数是wrapped
,将其代码紧凑,并在词典中加载时会删除评论。用CREATE OR REPLACE PACKAGE BODY
打开文件仅显示随机可打印字符:
要对错误进行故障排除,您可以轻松地将PL/SQL代码恢复,以便检查您遇到错误的行。
有一个用于SQL开发人员的插件:
Trivadis / plsql-unwrapper-sqldev
SQL开发人员的PL/SQL Un -Trapper
PL/SQL Unwrapper for SQL Developer
Introduction
PL/SQL Unwrapper for SQL Developer is a free extension to unwrap PL/SQL code wrapped with the wrap utility of the Oracle Database Server version 10g, 11g, 12c, 18c or 19c.
Example
Open a wrapped PL/SQL unit (procedure, function, package specification, package body, type specification or type body) in a SQL Developer editor
右键单击编辑器以显示弹出窗口。选择Unwrap
或简单地按Ctrl-Shift-U
即可解开代码。
编辑器内容被未包装的代码替换。
默认情况下,未包装的代码不包含有效的DDL语句。在这种情况下,CREATE
丢失了。您可以在首选项中更改此行为。
检查Add ‘CREATE OR REPLACE'
选项以获取完整的DDL语句。
散装未包装
如果安装oddgen for SQL Developer,您将在Generators
窗口中看到一个PL/SQL Unwrapper
节点:
打开PL/SQL UNWRAPPER节点
在线网站也可以在线进行:https://www.codecrete.net/UnwrapIt/
这是一个小脚本,将.unwrapped
中所有*.plb
的代码写入.unwrapped
11:
export PATH=$PATH:$ORACLE_HOME/python/bin
pip install html2text
for f in $(grep -l ' wrapped *$' $(find $ORACLE_HOME -name "*.plb"))
do
curl -s -F "file=@$f" -F "ShowLineNumbers=false" -F "UnwrapFile=Unwrap File" https://www.codecrete.net/UnwrapIt/ |
html2text | awk '
/Unwrap More Code/{p="Y";next}
/Bleichenbacher/{print "--",$0;next}
p=="Y"{gsub(/ʼ/,qq);print}
' qq="'" > ${f}.unwrapped && wc ${f}.unwrapped
done
这仅是在实验室中运行的,为什么不从Oracle 23C免费版本开始容器,而仅用于教育目的。包装时没有任何加密,但这并不能为您提供任何权利。这不是开源!