также требуется одно из этих расширений.

простой способ импортировать / экспортировать полнотекстовые поля в виде файлов?которые решают проблему «загрузить как несколько строк».

Попытка с SQL
COPY Я могу только преобразовать полный файл в полную таблицу, а не в одно текстовое поле, потому что каждая строка из COPY является необработанной.которые решают проблему сохранения, для сохранения полного XML-файла в файловой системе без изменения в бинарном представлении (

сохранение SHA1) и без других внешних процедур (как Unix использования).sedОсновная проблема на

экспорт, так что это заголовок этой страницы.PS: «доказательство того же файла» в оба конца - импорт, экспорт обратно и сравнение с оригиналом - можно получить с помощью

 демонстрация; см. примеры ниже. Таким образом, естественным требованием также является проверка того же SHA1 с помощью SQL, избегая экспорта при выполнении простых задач проверки.sha1sumВсе примеры

Импортировать полный текст

 в полный стол (это не то, что мне нужно),и проверить, что может
экспорт как тот же текст.PS: мне нужно импортировать один файл в одно поле и одну строку.
преобразование

полная таблица в один файл (это не то, что мне нужно)и проверить, что может
экспорт как то же текст.PS: мне нужен один ряд (из одного поля) в один файл.
Рассчитать хеш по SQL,

SHA1 поляДолжно быть.
тот же самый когда сравнишь ... остальное это не решение для меня.Следующие примеры показывают каждую проблему и не элегантный обходной путь.

1. Импорт

Проверка того, что оригинал и «назад» имеют абсолютно одинаковое содержание:

CREATE TABLE ttmp (x text);
COPY ttmp FROM '/tmp/test.xml' ( FORMAT text ); -- breaking lines lines
COPY (SELECT x FROM ttmp) TO '/tmp/test_back.xml' (format TEXT);

PS: кажется идеальным, но проблема здесь заключается в использовании множества строк. Реальное решение для импорта может импортировать файл в одну строку (и одно поле). Настоящее экспортное решение - это функция SQL, которая производит

sha1sum /tmp/test*.*
  570b13fb01d38e04ebf7ac1f73dfad0e1d02b027  /tmp/test_back.xml
  570b13fb01d38e04ebf7ac1f73dfad0e1d02b027  /tmp/test.xml

 из одного ряда (из одного поля).test_back.xml2. Преобразуйте полную таблицу в один файл

Используйте его для хранения XML:

... но не работает, как мы можем проверить

CREATE TABLE xtmp (x xml);
INSERT INTO  xtmp (x) 
  SELECT array_to_string(array_agg(x),E'\n')::xml FROM ttmp
;
COPY (select x::text from xtmp) TO '/tmp/test_back2-bad.xml' ( FORMAT text );

не дает тот же результатsha1sum /tmp/test*.xml,  заТак же сделать переводtest_back2-bad.xml.

 в chr (10), используя внешний инструмент (perl, sed или любой другой)\nХорошо теперь
perl -p -e 's/\\n/\n/g' /tmp/test_back2-bad.xml > /tmp/test_back2-good.xml

 иметь тот же хэш ("570b13fb ..." в моем примере), чем оригинальный. Использование Perl - это обходной путь, как обойтись без него?test_back2-good.xml3. SHA1 поля

Не решено, это не то же самое, что оригинал хэша ("570b13fb ..." в моем примере) ... Возможно,

SELECT encode(digest(x::text::bytea, 'sha1'), 'hex') FROM xtmp;

 принудительное внутреннее представительство с::text символы, поэтому решение будет напрямую приведено к\n, но это неверный актерский состав. Другой обходной путь также не является решением,bytea... Я пытаюсь

SELECT encode(digest( replace(x::text,'\n',E'\n')::bytea, 'sha1' ), 'hex') 
FROM xtmp

 а такжеCREATE TABLE btmp (x bytea), но ошибка («неизвестная подпись файла COPY»).COPY btmp FROM '/tmp/test.xml' ( FORMAT binary )в чем проблема с текстовыми полями в п. 1 - совпадения с sha1sum кажутся нормальными, не так ли?

Ответы на вопрос(2)

Ваш ответ на вопрос