Часто может возникнуть задача упаковки больших объектов Oracle CLOB, BLOB для их более компактного хранения или для иных целей. При этом может потребоваться считывать упакованные большие объекты CLOB, BLOB в клиентских приложениях на Java. Упаковывать же большие объекты желательно на стороне сервера на PL/SQL.
Для этих целей существует достаточно известная библиотека, написанная Piotr Jarmuz, которая и позволит нам выполнять все эти функции. Эта библиотека часто упоминается в сети, упоминает о ней и Том Кайт.
Вашему вниманию предлагается работоспособная версия этой библиотеки, которая поддерживает юникод UTF8. Доработка для поддержки юникода была взята с форума на sql.ru и скомпонована с основной версией библиотеки, отлажена и используется в реальных проектах.
Здесь можно скачать Java класс
LobCompressor.java, предназначенный для загрузки в базу данных Oracle.
Здесь можно скачать PL/SQL библиотеку
Compressor.sql - обертку для вызова класса LobCompressor.
Для использования этой библиотеки необходимо посредством SQL*Plus загрузить в базу данных LobCompressor.java, затем пакет Compressor.sql
Использование библиотеки заключается в вызове следующих PL/SQL функций из пакета Compressor:
FUNCTION clob_compress(p_clob clob) RETURN blob;
FUNCTION clob_decompress(p_blob blob) RETURN clob;
FUNCTION blob_compress(p_blob blob) RETURN blob;
FUNCTION blob_decompress(p_blob blob) RETURN blob;
На стороне клиента можно без изменений использовать класс из файла LobCompressor.java
Смотрите также:
Оставьте свой комментарий
Вы должны быть авторизированны, чтобы оставить комментарий.