Раздуйте поток zip с помощью Oracle PL / SQL - PullRequest
2 голосов
/ 12 декабря 2011

У меня есть поток zip внутри поля BLOB в базе данных. Я пытаюсь надуть его, но пока не могу.

Проблема в том, что этот поток является сжатым потоком, а не полным 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 в базе данных?

Спасибо и всего наилучшего

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Я наконец нашел решение.Похоже, что в библиотеке UTL_COMPRESS есть функция, которая может накачать поток за байтом.Единственный недостающий элемент - это вычисление контрольной суммы и добавление ее в конец данных.

Это ссылка, по которой я ее нашел, и пример исходного кода: http://technology.amis.nl/blog/7626/utl_compress-gzip-and-zlib

0 голосов
/ 12 декабря 2011

Существует пакет UTL_COMPRESS, но я не думаю, что он вам поможет.Я бы использовал хранимую процедуру Java ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...