|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
Всем привет! У меня есть XML, хранящийся в CLOB. Oracle 11g. Мне нужно сжать его при помощи GZip. Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 14:50 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
В типе CLOB хранятся данные какого типа? А файл GZip - это какой тип данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 14:53 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
Хранится структура XML в виде строки. Пока вижу выход в использовании Java под Oracle, где есть GZIPOutputStream. Но нормально сжать Clob не удается. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 14:59 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
C Java никогда не сталкивался. Попробовал написать процедуру, но нужного результата не получаю. public static void gZipCompress(CLOB pInData, CLOB pOutData) { try { InputStream in = pInData.getAsciiStream(); ByteArrayOutputStream z = new ByteArrayOutputStream(); byte[] aDataToCompress = new byte[pInData.getBufferSize()]; int cnt; while ((cnt = in.read(aDataToCompress))!=-1) { z.write(aDataToCompress, 0, cnt); } in.close(); z.close(); ByteArrayOutputStream byteStream = new ByteArrayOutputStream(aDataToCompress.length); java.io.OutputStream out; try { GZIPOutputStream zipStream = new GZIPOutputStream(byteStream); try { zipStream.write(aDataToCompress); } finally { zipStream.close(); } } finally { byteStream.close(); } byte[] compressedData = byteStream.toByteArray(); out = ((CLOB)pOutData).getAsciiOutputStream(); out.write(compressedData); out.flush(); out.close(); } catch (Exception e) { // } } ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:03 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248Хранится структура XML в виде строки. Пока вижу выход в использовании Java под Oracle, где есть GZIPOutputStream. Но нормально сжать Clob не удается. Самоответы на мои вопросы: - В типе CLOB хранятся данные какого типа? - В типе CLOB хранятся данные символьного типа. При передаче по сети они могут быть перекодированы из кодировки базы в кодировку клиента и наоборот. - А файл GZip - это какой тип данных? - Файл GZip - это двоичные данные. При передаче по сети они не должны перекодироваться. Вывод: Не нужно хранить Файл GZip в полях типа CLOB. Для хранения таких данных есть поля типов BLOB и BFILE. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:12 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248сжать его при помощи GZip.lz_compress совместим с gunzip ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:12 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248C Java никогда не сталкивался. Попробовал написать процедуру, но нужного результата не получаю. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
При публикации кода используйте, пожалуйста, тег SRC. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:14 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248, Да терабайты же ссылок в google dbms_lob.converttoblob + utl_compress, где хранить сжатый xml потом - вольному воля Regards Maxim ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:16 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
Мне нужно хранить XML именно в Clob в символьном виде, а сжимать в GZip только для передачи данных. Причем XML могут быть большими, за пределами Varchar2(40000) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:22 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
varchar - 4000 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:22 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
Maxim DemenkoSergK248, Да терабайты же ссылок в google dbms_lob.converttoblob + utl_compress, где хранить сжатый xml потом - вольному воля Regards MaximТерабайты ссылок никому не нужны, если человек только начинает и не может пока грамотно формулировать вопросы. Ему нужна подсказка и помощь. Для этого и есть форум. Если бы вы на свой вопрос получали терабайт ссылок, что бы вы с ними делали? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:23 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248Мне нужно хранить XML именно в Clob в символьном виде, а сжимать в GZip только для передачи данных. Причем XML могут быть большими, за пределами Varchar2(40000)Воооот! Уже новые подробности. Так постепенно и учатся правильно задавать вопросы! SergK248Всем привет! У меня есть XML, хранящийся в CLOB. Oracle 11g. Мне нужно сжать его при помощи GZip. Мне нужно хранить XML именно в Clob в символьном виде, а сжимать в GZip только для передачи данных. Причем XML могут быть большими, за пределами Varchar2(40000) Как это сделать?Ждём новые подробности... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:26 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248, а зачем? оракловый sqlnet поддерживает компрессию и может сам сжимать для передачи по сети ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:29 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
https://www.oracle.com/technetwork/database/enterprise-edition/advancednetworkcompression-2141325.pdf https://blogs.oracle.com/dbstorage/advanced-network-compression-a-lesser-known-feature-of-advanced-compression ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:30 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SQL*Plusчеловек только начинает и не может пока грамотно формулировать вопросы. ИМХО - измышлизм ТС вполне внятно задал свой вопрос и никто сжатый XML в CLOB хранить не собирается. Regards Maxim ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:33 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
мне по специфике задачи нужно сжатие именно GZip-ом, т.к. на стороне WS, которому я передаю запрос, расшифровка и отправка ответа происходит именно в GZip ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:33 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248на стороне WS, которому я передаю запроскто на ком стоял? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:41 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
Я намеренно не хочу вдаваться в детали задачи, хранении данных и обсуждать ненужные подробности. Повторю основную задачу, мне нужно переменную типа Clob, где хранится большая строка(больше Varchar2) сжать обязательно только при помощи GZip. Навскидку вижу решение в задействовании Java, код процедуры приложил выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:47 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
SergK248обязательно только при помощи GZipА как получатель сего определит, сжато оно обязательно или только? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 15:55 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
Хочу повториться, совершенно неважно, как я взаимодействую с получателем. Еще раз все таки напишу суть моего вопроса: мне нужно переменную типа Clob, где хранится большая строка(больше Varchar2) сжать обязательно только при помощи GZip ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 16:24 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
xtenderSergK248, а зачем? оракловый sqlnet поддерживает компрессию и может сам сжимать для передачи по сети https://www.oracle.com/technetwork/database/enterprise-edition/advancednetworkcompression-2141325.pdf https://blogs.oracle.com/dbstorage/advanced-network-compression-a-lesser-known-feature-of-advanced-compression Для легального использования Advanced Network Compression требуется лицензировать (купить) опцию Advanced Compression. Oracle Database Options and Their Permitted Features ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 16:39 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
https://docs.oracle.com/cd/B13789_01/appdev.101/b10802/u_compr.htm#999326 The output of the UTL_COMPRESS compressed data is compatible with gzip(with -n option)/gunzip on a single file. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 21:10 |
|
Сжатие Clob при помощи GZip
|
|||
---|---|---|---|
#18+
Ну и вот это с прода (не моё) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 21:16 |
|
|
start [/forum/topic.php?fid=52&msg=39767100&tid=1882856]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
2246ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 2670ms |
0 / 0 |