Импорт xml-файла в таблицу.

Здравствуйте, уважаемые участники форума.

Необходимо поместить данные, содержащиеся в большом xml-файле, в таблицу. Создал таблицу с одним столбцом, имеющим тип xml, после чего попытался выполнить следующее:

COPY xmltest FROM '/home/alexey/projects/test/ProductData.xml';

Получил ошибку:

[2200N] ERROR: invalid XML content
Detail: line 1: XML declaration allowed only at the start of the document <?xml version="1.0" encoding="utf-8"?>

Подумал, что Postgres`у не нравится кодировка. Проверил файл командой:

file ProductData.xml

Получил ответ:

ProductData.xml: XML 1.0 document, UTF-8 Unicode (with BOM) text, with CRLF line terminators

Удалил ВОМ командой:

sed -i '1s/^\xEF\xBB\xBF//' orig.txt

После этого file показывает:

ProductData.xml: XML 1.0 document, UTF-8 Unicode text, with CRLF line terminators

Снова пытаюсь выполнить импорт той же инструкцией:

COPY xmltest FROM '/home/alexey/projects/test/ProductData.xml';

Получаю ответ:

[2200N] ERROR: invalid XML content
Detail: line 1: Premature end of data in tag ProductData line 1
g/2001/XMLSchema" xsi:noNamespaceSchemaLocation="Productgegevens_insbou003.xsd">

Помогите, пожалуйста.

UPD: Разобрался - надо было, оказывается, удалить знаки перевода строки и табуляции.

Back to top

(С) Виктор Вислобоков, 2008-2023