|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
Добрый день. Есть задача: Загрузить XML фалы в таблицу БД. Подскажите, как это можно реализовать с помощью postgres ? Задачу разбил на две части: 1) прочитать фалы из дирректории по заданной маске. 2) загрузить файлы в таблицу. Сейчас больше интересует второе. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 15:03 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
vyegorovЛичинка DBA, https://www.postgresql.org/docs/current/static/sql-copy.html Спасибо. Пробую так: Код: sql 1.
Когда создаю табличку Код: sql 1.
Заливается 148 строк вместо 1 xml документа. Когда создаю как xml Код: sql 1.
Выдает ошибку: Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2017, 16:29 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
Личинка DBA, Вы не разобрались с командой COPY. Поэтому и получаете всякую фигню. Обратите внимание на опцию FORMAT. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2017, 16:46 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
copy ? причем тут copy? она создана для загрузки данных из "большого" файла с множеством записей, а xml часто грузится как один "blob", ну пусть будет copy. Создадим тестовую табличку: Код: plsql 1. 2. 3. 4. 5. 6.
Для примера обратимся к сайту cbr.ru, и получим курсы (в виде xml-файлов/и заменим code-page на UTF-8[БД допустим у нас в UTF-8]) валют за декабрь 2014 (месяц очередной девальвации с последующей деноминацией в РФ) Код: plsql 1.
Выше немного "магии", т.к. dbcopy загружает по строкам, то преобразуем в строку. Пробуем загрузить в БД: Код: plsql 1. 2.
Проверяем: Код: plsql 1.
Получаем: Код: php 1. 2. 3.
p.s. использована shell/linux. Под win аналогично легко написать на vbs. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2017, 11:25 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
Bsplesk, Спасибо. С этим разобрался. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 11:04 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
ursidoЛичинка DBA, Вы не разобрались с командой COPY. Обратите внимание на опцию FORMAT. Можете подробнее написать какой формат использовать? Что-то запутался. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 13:46 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
в бинарном не загружается. в csv загружается так же как в текстовом. в текстовом вместо 1 строки загружается куча. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 14:33 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
Наверное как-то надо избавляться от символов перевода на новую строку. но как не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 14:33 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
Личинка DBAНаверное как-то надо избавляться от символов перевода на новую строку. но как не знаю. copy может вырезать символы перевода на другую строку? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 14:39 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
вопрос актуален ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 14:47 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
реализовал пока через ... через loop криво залитые данные парьсяться и вырезаются перенос на новую строку. надо придумать чтобы COPY сразу одной строкой впихнул XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 15:22 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
Личинка DBAcopy может вырезать символы перевода на другую строку?Нет, это задача приложения. It is strongly recommended that applications generating COPY data convert data newlines and carriage returns to the \n and \r sequences respectively. https://www.postgresql.org/docs/10/static/sql-copy.html Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:20 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
LeXa NalBatЛичинка DBAcopy может вырезать символы перевода на другую строку?Нет, это задача приложения. It is strongly recommended that applications generating COPY data convert data newlines and carriage returns to the \n and \r sequences respectively. https://www.postgresql.org/docs/10/static/sql-copy.html Код: sql 1. 2. 3. 4. 5.
1) Фалы изменять НЕЛЬЗЯ, т.к. они потом идут дальше 2) в винде нет cat ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:27 |
|
Загрузить XML фалы в таблицу БД
|
|||
---|---|---|---|
#18+
Личинка DBA1) Фалы изменять НЕЛЬЗЯ, т.к. они потом идут дальше Тогда загружайте приложением - читайте содержимое файла и вставляйте через INSERT. Потому что COPY умеет загружать из текстового COPY формата (text) или бинарного COPY формата (binary) или общепринятого CSV формата (csv). А вы не можете (или не хотите) перед загрузкой перевести ваши данные из сырого текстового формата в текстовый COPY формат или в общепринятый CSV формат. В вашем формате вы хотите, чтобы COPY интерпретировал содержимое входного файла целиком как единственное значение - и без квотирования (как в формате csv), и без экранирования (как в формате text). И вставил бы его одной строкой в некоторое поле некоторой таблицы. COPY так не умеет делать. Возможно, потому, что предназначается для другой задачи - загрузки большого количества строк. Личинка DBA2) в винде нет catУ меня нет винды. Я привел пример загрузки xml в формате csv. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2017, 13:50 |
|
|
start [/forum/topic.php?fid=53&msg=39539363&tid=1996153]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 188ms |
0 / 0 |