Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Помогите распарсить bytea, всё перепробовал  [new]
Santa89
Member

Откуда:
Сообщений: 1497
Есть колонка data::bytea, в ней содержится некая xml-разметка, нужно это дело распарсить (см.скрин).

Если пишу

SELECT *, convert_from(data, 'UTF-8') as your_alias_name from pg_largeobject where loid = 64573 - ошибка ERROR: invalid byte sequence for encoding "UTF8": 0x00

Если пишу

SELECT *, encode(data, 'escape') as your_alias_name from pg_largeobject where loid = 64573 - формат получается нечитаемый..

Как поулчить чистых XML из этого поля?

Модератор: Вложение удалено.


Сообщение было отредактировано: 2 мар 21, 00:56
23 фев 21, 05:06    [22285016]     Ответить | Цитировать Сообщить модератору
 Re: Помогите распарсить bytea, всё перепробовал  [new]
Santa89
Member

Откуда:
Сообщений: 1497
Советовали смотреть в сторону команды Export, т.к. весь XML разбит постранично (поле pageno), но я пока не понял как это сделать
23 фев 21, 05:09    [22285017]     Ответить | Цитировать Сообщить модератору
 Re: Помогите распарсить bytea, всё перепробовал  [new]
Santa89
Member

Откуда:
Сообщений: 1497
Если делать через команду psql.exe -c "\lo_export.." то опять получается нечитаемый текст. Может быть обьекты в базе как-то закодирован?
23 фев 21, 09:09    [22285021]     Ответить | Цитировать Сообщить модератору
 Re: Помогите распарсить bytea, всё перепробовал  [new]
VSVLAD
Member

Откуда: Краснодар
Сообщений: 1388
Santa89,

судя по заголовку PK, это ZIP подобный алгоритм. Возможно GZIP сжат, сначала надо его распаковать
23 фев 21, 10:31    [22285038]     Ответить | Цитировать Сообщить модератору
 Re: Помогите распарсить bytea, всё перепробовал  [new]
DHDD
Member

Откуда:
Сообщений: 53
50 4B 03 04 PK♥♦

точно zip.
23 фев 21, 11:08    [22285050]     Ответить | Цитировать Сообщить модератору
 Re: Помогите распарсить bytea, всё перепробовал  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4582
Santa89,

Распарсить чем?
Смотрите как приложение пишет и читайте тем же образом.

Самой базе внутрь bytea лезть - последнее дело, это просто бинарный файл не для обработки внутри базы.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
23 фев 21, 11:16    [22285053]     Ответить | Цитировать Сообщить модератору
 Re: Помогите распарсить bytea, всё перепробовал  [new]
Santa89
Member

Откуда:
Сообщений: 1497
Так оно и оказалось. Внутри был не XML а Zip архив, спасибо за помощь!
23 фев 21, 11:20    [22285055]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить