现在,我正在使用Oracle实用程序UTL_COMPRESS.LZ_COMPRESS()来压缩一些数据。但问题是它使用GZIP兼容格式压缩东西,不幸的是它也不是ZIP兼容的。因此,Windows本机解压缩实用程序无法打开它(您知道压缩文件夹细化)。用户必须使用一些其他实用工具,如7Zip、Winzip或Filzip等,才能对其进行解压缩。
因此,我们最终有了从Oracle检索GZIP数据、使用Java解压缩GZIP数据并将其压缩回ZIP ( Windows实用程序可以解压缩的东西)的计划。对compress-in-gzip -> decompress -> compress-again-in-zip来说,这听起来很荒谬。
发布于 2010-12-10 04:58:11
有一个Java java.util.zip支持WinZip格式。在Oracle中,我们可以构建java存储过程,它以本地PL/SQL程序可以调用的形式表示Java类。了解更多信息。
因此,您需要做的是写出一个包含处于未压缩状态的数据的文件,然后通过JSP将其提供给它。如果您不想编写自己的实现,那么请查看本文作者: Vadim Loevski。它包括一个用于压缩OS文件的Java存储过程。
注意:在这种情况下,JSP是指Java存储过程,它是嵌入在数据库中的Java程序。它与作为web技术的Java不同,因此JSP缩略词更常见。我对任何混乱之处表示歉意。
发布于 2010-12-10 07:02:13
UTL_RAW.CAST_TO_RAW不是任何一种压缩算法。不知道你是从哪里想到的。RAW (和它更大的表亲BLOB)只是存储不是数字、日期或字符串的数据。您不希望将二进制数据存储在字符串中,因为存在字符转换问题的可能性。
用于压缩的正确的PL/SQL包是UTL_COMPRESS,它使用了标准的Lempel-Ziv算法。
compr.htm#BGBBCDDI
https://stackoverflow.com/questions/4405676
复制相似问题