使用 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不安装Oracle客户端直接用PL/SQL连接数据库