使用 Oracle PL/SQL 扩展 zip 流

Posted

技术标签:

【中文标题】使用 Oracle PL/SQL 扩展 zip 流【英文标题】:Inflate zip stream with Oracle PL/SQL 【发布时间】:2011-12-12 16:16:13 【问题描述】:

我在数据库的 BLOB 字段中有一个 zip 流。我正在尝试给它充气,但到目前为止还不能。

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

如果它说的很清楚,这将是用于扩展它的 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 过程?

感谢和问候

【问题讨论】:

如果您已经知道如何使用 java,为什么不使用? 这只是我试图避免使用Java的开销并且需要将它安装在服务器上。再说了,系统管理员不会这么轻易批准的 【参考方案1】:

有 UTL_COMPRESS 包,但我认为它对您没有帮助。 我会使用 Java 存储过程 ....

【讨论】:

谢谢。我试过了,但由于流不是完整的文件,UTL_COMPRESS 无法识别它。也许如果我可以围绕它创建一个文件...【参考方案2】:

我终于找到了解决办法。 似乎 UTL_COMPRESS 库中有一个函数可以逐字节地膨胀流。唯一缺少的部分是计算校验和并将其添加到数据的末尾。

这是我找到它的链接以及示例源代码: http://technology.amis.nl/blog/7626/utl_compress-gzip-and-zlib

【讨论】:

感谢更新,相信以后会派上用场

以上是关于使用 Oracle PL/SQL 扩展 zip 流的主要内容,如果未能解决你的问题,请参考以下文章

向我介绍 Oracle PL/SQL 扩展

Oracle不安装Oracle客户端直接用PL/SQL连接数据库

Oracle Windows 环境下安装 + PL/SQL

[Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决

Oracle——PL/SQL

oracle pl/sql 简介