2011-12-12 42 views
2

我在数据库的BLOB字段内有一个zip流。我试图夸大它,但迄今为止无法。使用Oracle PL/SQL膨胀zip流

问题是这个流是一个压缩流,而不是一个完整的zip文件。

如果它使clearear,这将是Java代码它充气:

FileInputStream fis2 = new FileInputStream(args[1]); 
InflaterInputStream iis = new InflaterInputStream(fis2); 
FileOutputStream fos2 = new FileOutputStream(args[2]); 

doCopy(iis, fos2); 

我希望能够做到这一点的Oracle PL/SQL而不是Java。是否有可能或者我应该在数据库中创建一个Java过程?

感谢和问候

+3

为什么不使用java如果你已经知道怎么样? –

+0

这只是为了避免使用Java并需要将其安装在服务器上的开销。 另外,系统管理员不会轻易批准这个 – user1094082

回答

0

还有就是UTL_COMPRESS包,但我不认为它会帮助你。 我会使用Java存储过程....

+0

谢谢。我试过,但由于流不是一个完整的文件,UTL_COMPRESS不会识别它。 也许如果我可以在它周围创建一个文件... – user1094082

0

我终于找到了解决方案。 看起来好像UTL_COMPRESS库中有一个函数可以逐字节地扩充数据流。唯一缺少的部分是计算校验和并将其添加到数据的末尾。

这是链接,我发现它与示例源代码: http://technology.amis.nl/blog/7626/utl_compress-gzip-and-zlib

+0

感谢您的更新,我确信它将在未来派上用场 –