Вы можете делать все это с помощью стандартных инструментов PostgreSQL, без дополнительных библиотек.
Для файлов .csv вы можете использовать встроенную команду COPY . КОПИЯ быстрая и простая. Исходный файл должен лежать на той же машине, что и база данных для этого. Если нет, вы можете использовать очень похожую метакоманду \ copy из psql .
Для .xml файлов (или любого другого формата) вы можете использовать встроенную pg_read_file () внутри plpgsql функции . Однако я цитирую:
Только файлы в каталоге кластера базы данных и директории log_directory.
можно получить доступ.
Таким образом, вы должны поместить туда свой исходный файл или создать символическую ссылку на ваш фактический файл / каталог. Затем вы можете разобрать его с помощью unnest () и xpath () и друзей . Для этого вам нужен как минимум PostgreSQL 8.4.
Начало разбора XML в этом сообщении в блоге Скотта Бэйли .