2011-12-12 41 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

感謝您的更新,我確信它將在未來派上用場 –