楼主: 〇〇

终于改出了能超过4000字的unwrap

[复制链接]
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
21#
 楼主| 发表于 2009-6-12 14:26 | 只看该作者

回复 #20 fengjin821 的帖子

请从1楼的链接取得java源代码和建对照表pl/sql块

使用道具 举报

回复
论坛徽章:
10
数据库板块每日发贴之星
日期:2009-06-04 01:01:02祖国60周年纪念徽章
日期:2009-10-09 08:28:002009日食纪念
日期:2009-07-22 09:30:00数据库板块每日发贴之星
日期:2009-06-28 01:01:02数据库板块每日发贴之星
日期:2009-06-15 01:01:02数据库板块每日发贴之星
日期:2009-06-14 01:01:02数据库板块每日发贴之星
日期:2009-06-09 01:01:02数据库板块每日发贴之星
日期:2009-06-07 01:01:02授权会员
日期:2009-06-06 10:43:16数据库板块每日发贴之星
日期:2010-12-01 01:01:01
22#
发表于 2009-6-12 14:47 | 只看该作者

回复 #21 〇〇 的帖子

那个问题解决了,最后解码的时候出现这个:

SQL>  exec unwrap('SYS','DL2ML','FUNCTION');

begin unwrap('SYS','DL2ML','FUNCTION'); end;

ORA-01403: no data found
ORA-06512: at "SYS.UNWRAP", line 69
ORA-06512: at line 2



69行:  vLZinflatestr := vLZinflatestr || mytbl(vChar); --从字符数组匹配

使用道具 举报

回复
论坛徽章:
10
数据库板块每日发贴之星
日期:2009-06-04 01:01:02祖国60周年纪念徽章
日期:2009-10-09 08:28:002009日食纪念
日期:2009-07-22 09:30:00数据库板块每日发贴之星
日期:2009-06-28 01:01:02数据库板块每日发贴之星
日期:2009-06-15 01:01:02数据库板块每日发贴之星
日期:2009-06-14 01:01:02数据库板块每日发贴之星
日期:2009-06-09 01:01:02数据库板块每日发贴之星
日期:2009-06-07 01:01:02授权会员
日期:2009-06-06 10:43:16数据库板块每日发贴之星
日期:2010-12-01 01:01:01
23#
发表于 2009-6-12 14:56 | 只看该作者
我在创建plb文件的时候没有问题

但在执行

SQL> @'f:\oracle\dl2ml.plb';

Warning: Function created with compilation errors

出现这个警告,后来我查

SQL>  select text from user_source where name='DL2ML';

TEXT
--------------------------------------------------------------------------------
function dl2ml wrapped
a000000
354
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
336 195
I6tm5WOOQijmzt15Z9K2PkIEiKwwg1zrVUhGyi9Ej4dyXkeQmL9Rmx+/E2kBCr1tvSf2mrXp
5b0vi8AVH8CLL4eYLGFCCFdFi81I6yz/HKpZBBu2uS+KYQd61pPuWmo7vv6lAZ0XKAoyn7Rw
fAoCmvojeiA6zysqClDOCG4crtgnh+6fpGXgot4Ebeg+svYM6w2zoGMpe+CiIaR/wiE0SkCc
QLdHcYDv8u/8JeMbq1iyQYtZvjY06NkaVZS+B4rRkSHsBFyrWJI4MvSRhGme21rr8aAWmEZa
PfG2GtNmTAxMZo2C98KU+holjH8lYWZk6MAbCcRmWMPl9KGsWq576meesRrhkMTrcFUns7v/
N4HvRz+6pd3qVBlXudSBKSx2czIZasYkQhdTGQ==

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
24#
 楼主| 发表于 2009-6-12 15:16 | 只看该作者
原帖由 fengjin821 于 2009-6-12 14:47 发表
那个问题解决了,最后解码的时候出现这个:

SQL>  exec unwrap('SYS','DL2ML','FUNCTION');

begin unwrap('SYS','DL2ML','FUNCTION'); end;

ORA-01403: no data found
ORA-06512: at "SYS.UNWRAP", line 69
ORA-06512: at line 2



69行:  vLZinflatestr := vLZinflatestr || mytbl(vChar); --从字符数组匹配


需要确保对照表恰好有256行不同的
我是运行1次'PACKAGE' 1次'FUNCTION'得到的

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
25#
 楼主| 发表于 2009-6-13 10:10 | 只看该作者

oracle的utl_compress库的压缩/解压结果与java.deflate不同

SQL> select amosunwrapper.deflate('41424344',9) from dual;

AMOSUNWRAPPER.DEFLATE('4142434
----------------------------------------------------------------------------------------------------------------------------------
--
78DA333134313231363101000736019B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00
000000000000000000000000000000000000000000000000000000000000000000000000000000000000


已用时间:  00: 00: 00.06
SQL> select amosunwrapper.inflate(amosunwrapper.deflate('41424344',9)) from dual;

AMOSUNWRAPPER.INFLATE(AMOSUNWR
----------------------------------------------------------------------------------------------------------------------------------
--
41424344

已用时间:  00: 00: 00.01
SQL> select utl_compress.LZ_COMPRESS('41424344',9) from dual;

UTL_COMPRESS.LZ_COMPRESS('4142
----------------------------------------------------------------------------------------------------------------------------------
--
1F8B080000000000000B737472760100A52017DB04000000

已用时间:  00: 00: 00.00
SQL> select utl_compress.LZ_COMPRESS('41424344',6) from dual;

UTL_COMPRESS.LZ_COMPRESS('4142
----------------------------------------------------------------------------------------------------------------------------------
--
1F8B080000000000000B737472760100A52017DB04000000

已用时间:  00: 00: 00.00



已用时间:  00: 00: 00.00
SQL> select utl_compress.LZ_UNCOMPRESS( utl_compress.LZ_COMPRESS('41424344',9)) from dual;

UTL_COMPRESS.LZ_UNCOMPRESS(UTL
----------------------------------------------------------------------------------------------------------------------------------
--
41424344

已用时间:  00: 00: 00.00


SQL> select utl_compress.LZ_COMPRESS(UTL_RAW.CAST_TO_RAW('中文'),6) from dual;

UTL_COMPRESS.LZ_COMPRESS(UTL_R
----------------------------------------------------------------------------------------------------------------------------------
--
1F8B080000000000000BBB76E1DC110000F0826604000000

已用时间:  00: 00: 00.04
SQL> select utl_compress.LZ_UNCOMPRESS( utl_compress.LZ_COMPRESS(UTL_RAW.CAST_TO_RAW('中文'),9)) from dual;

UTL_COMPRESS.LZ_UNCOMPRESS(UTL
----------------------------------------------------------------------------------------------------------------------------------
--
D6D0CEC4

已用时间:  00: 00: 00.03
SQL> select UTL_RAW.CAST_TO_VARCHAR2(utl_compress.LZ_UNCOMPRESS( utl_compress.LZ_COMPRESS(UTL_RAW.CAST_TO_RAW('中文'),9))) from du
al;

UTL_RAW.CAST_TO_VARCHAR2(UTL_C
----------------------------------------------------------------------------------------------------------------------------------
--
中文

已用时间:  00: 00: 00.04

[ 本帖最后由 〇〇 于 2009-6-13 10:16 编辑 ]

使用道具 举报

回复
论坛徽章:
2
26#
发表于 2009-6-13 11:25 | 只看该作者
标记一下,有时间好好研究。

使用道具 举报

回复
论坛徽章:
67
生肖徽章2007版:虎
日期:2009-04-18 13:52:14马上有钱
日期:2014-02-18 16:43:09马上有车
日期:2014-03-22 00:26:28itpub13周年纪念徽章
日期:2014-10-01 16:37:542015年新春福章
日期:2015-03-06 11:58:18ITPUB14周年纪念章
日期:2015-10-26 17:23:44秀才
日期:2015-11-30 09:59:23秀才
日期:2016-01-21 13:37:04秀才
日期:2016-01-25 15:02:04秀才
日期:2016-12-21 16:55:07
27#
发表于 2009-6-13 12:41 | 只看该作者
学习一下.

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
28#
 楼主| 发表于 2009-6-14 12:21 | 只看该作者
下一步准备结合utl_file,直接对plb文件unwrap

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
29#
 楼主| 发表于 2009-6-15 08:44 | 只看该作者
经过研究plb文件的unwrap还是有难度的

有些文件既有明文又有密文
例如

  1. create or replace package body utl_pg wrapped
  2. a000000
  3. 1
  4. abcd
  5. abcd
  6. abcd
  7. abcd
  8. abcd
  9. abcd
  10. abcd
  11. abcd
  12. abcd
  13. abcd
  14. abcd
  15. abcd
  16. abcd
  17. abcd
  18. abcd
  19. b
  20. 18e6 363
  21. 9eJMpxTUFQtJ2ODXUxwSJB16ZGEwg81UACAFfC/N2A+vzPtlQoGi+onyVHqejgF4TCGfKcio
  22. c7VsPoLxcU715p1l43xwHa2bhRK7Ioejh0FCYlRrrpaKxgX+7oH9t0zUZcRU1OiuPYTeYzk8
  23. 8l7VXkMYvxeLnDaf7ujkR9furQud0SBNugU7q55TBGlw6rIMO6OP8sh0oeJrKavLgZIL4tPc
  24. CD0CPPCPpbTcMjKz+mSv3OF4ltY21Sc4JYvwbbC5YoLkkttfS+37tfhX7EZ5O+4NBkcsAcWH
  25. nqeccvP3sO9ABIrjEHzbpoBHdsp4sxN0wRuvg8xzBU3mZJ44SjF74st4jupXdXbJU0pJu1D5
  26. eBEQFdO4MlM7XfaNmIzRNK/Cja0jw5cZWSXSo4ZUDRUtxb+AGbmsfF++6gBT/2UU9lJYmkP5
  27. G7HTfhyEqsEBvasxayTTTn1u7RLS0etUMNXeAp4rNp4Csg4xhaj8OdW8tEv7ARB8O5HrVlmq
  28. 2iu5UC8KXVfBrIJUAF92qCpuUvf265HcxbaGZrEmUvcKPZG87mVdlzId8VSdG7R4wy0x6PUT
  29. nrZ61aJiqG5S+Ib4w/eKqBHHNf2eg6JQ1DcqbZGqZ/3hK/kQZVMMTwk9x3QOcucfKydPQQaO
  30. 8P5fU4BWYIsPF0b48BqEBNQz9Vro1gYXf1aj22nejFOklV0inGZStR3HPhVozpZ1kIw3jG1F
  31. 7cfS1riOn0oidcLvAL0nUrx8Q+Pcz8yc4Kz163GOLGe3dZmmCcC2zbPMR+DTn837HBbCb+lI
  32. gh+gjk82PkWhQEjxDqI6vukj4GtYAB8faHVF1AIh4pDBqVOWPAXJER6GsE/7aptQ

  33. /
  34. show errors
  35. create or replace public synonym utl_pg for sys.utl_pg
  36. /
  37. grant execute on sys.utl_pg to public
  38. /

复制代码


只提供了输出到文本文件
DBMS_OUTPUT.PUT_LINE(amosunwrapper.inflate(vLZinflatestr));
改为
vfHandle utl_file.file_type;
vfHandle := utl_file.fopen('DMPDIR', 'test.txt', 'w'); --'test.txt'可以用一个参数代替
utl_file.put_line(vfHandle,amosunwrapper.inflate(vLZinflatestr));
utl_file.fclose(vfHandle);

[ 本帖最后由 〇〇 于 2009-6-15 08:53 编辑 ]

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
30#
发表于 2009-6-15 11:23 | 只看该作者
开始==> abcd/abcd
结束==> "/"

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表