У меня следующая XML структура документа. Данные хранятся в виде атрибутов внутри <item>
элементов. Атрибутом body является форматированный текст.
<?xml version="1.0" encoding="utf-8"?>
<items>
<item Id="1" Body="<p>Data1</p>

<p>Data1 </p>
" />
<item Id="2" Body="<p>Data2</p>

<p>Data2 </p>
" />
</items>
Импорт в таблицу PostgreSQL:
select
(xpath('//item/@Id', items))[1]::text::bigint AS id,
(xpath('//item/@Body', items))[1]::text AS body,
from
unnest(xpath('//item', xmlparse(document convert_from(pg_read_binary_file('items.xml'), 'utf8')))) as items;
Я получаю следующую ошибку:
ERROR: could not parse XML document
DETAIL: line 109749: internal error: Huge input lookup
as well. Will these deposits be an issue or a probable cause of rejection?</
^
line 109749: attributes construct error
^
line 109749: Couldn't find end of Start Tag item line 109749
^
line 109749: EndTag: '</' not found
При попытке попробовать этот пример небольшие наборы данных в порядке. Когда я пытаюсь импортировать более 100000 записей, происходит сбой.