Wrap加密一些注意点(中文汉字加密的问题)
感觉加密后如果有中文汉字的时候加密后的文件几乎是原来文件的两倍大。而且运行加密后的脚本速度也慢了好几倍,可能会慢了10倍吧,至于为什么会这样我也不清楚。
不加密的代码可用,但用wrap加密过的plb代码无法通过编译环境:
oracle9201 window xp profession
加密命令如下:
本人尝试了以下二种方法
方法一:
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
wrap iname=Lwsf_Manage_PackageHead.sql edebug=wrap_new_sql
pause
wrap iname=Lwsf_Manage_PackageBody.sql edebug=wrap_new_sql
pause
加密成功生成 plb文件
方法二:
set NLS_LANG=AMERICAN_AMERICA.USACII7
wrap iname=Lwsf_Manage_PackageHead.sql edebug=wrap_new_sql
pause
wrap iname=Lwsf_Manage_PackageBody.sql edebug=wrap_new_sql
pause
加密成功生成 plb文件
但加载plb产生编译错误信息如下:
SQL> @lwsf_manage_packagehead.plb
程序包已创建。
SQL> @lwsf_manage_packagebody.plb;
警告: 创建的包体带有编译错误。
SQL> show errors
PACKAGE BODY PKG_LWSF_MANAGE 出现错误:
LINE/COL ERROR
-------- -----------------------------------------------------------------
759/5 PL/SQL: SQL Statement ignored
762/54 PL/SQL: ORA-00905: 缺少关键字
831/5 PL/SQL: SQL Statement ignored
852/61 PL/SQL: ORA-01747: 无效的用户.表.列,表.列,或列规格
1170/5 PL/SQL: SQL Statement ignored
1171/63 PL/SQL: ORA-00933: SQL 命令未正确结束
3383/5 PL/SQL: SQL Statement ignored
3419/17 PL/SQL: ORA-00917: 缺少逗号
3817/5 PL/SQL: SQL Statement ignored
3843/33 PL/SQL: ORA-03001: 未执行的特性
3903/5 PL/SQL: SQL Statement ignored
LINE/COL ERROR
-------- -----------------------------------------------------------------
3914/4 PL/SQL: ORA-00911: 无效字符
4492/5 PL/SQL: SQL Statement ignored
4515/6 PL/SQL: ORA-00911: 无效字符
4661/5 PL/SQL: SQL Statement ignored
4676/62 PL/SQL: ORA-00923: 未找到预期 FROM 关键字
SQL> spool off;
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
wrap iname=Lwsf_Manage_PackageHead.sql edebug=wrap_new_sql
pause
wrap iname=Lwsf_Manage_PackageBody.sql edebug=wrap_new_sql
pause
加密后的文件plb有些中文可以看到,并不是乱码!
SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
wrap iname=Lwsf_Manage_PackageHead.sql edebug=wrap_new_sql
pause
wrap iname=Lwsf_Manage_PackageBody.sql edebug=wrap_new_sql
pause
代码编译全部通过