|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
Доброе утро. Есть проблема. Не могу выгрузить значение json через \copy в psql. Код: sql 1.
Первый столбец без второго выгружается нормально. Подозреваю что не нравится символ # или {}. Экранирование через \ не помогает. Подскажите, как сделать чтобы команда корректно отработала? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 13:54 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
с кавычками разберитесь. Вы обернули аргумент -c в кавычки - хорошо. Но теперь посмотрите как это будет разбирать shell из-за того что вы никак не модифицировали текст этого аргумента ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 14:02 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
Melkij с кавычками разберитесь. Вы обернули аргумент -c в кавычки - хорошо. Но теперь посмотрите как это будет разбирать shell из-за того что вы никак не модифицировали текст этого аргумента С кавычками как раз все работает нормально, на удивление. ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 14:15 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
[quot per#22330909]Доброе утро. Есть проблема. Не могу выгрузить значение json через \copy в psql. Код: sql 1.
Здесь есть подвох. 1) PostgreSQL позволяет работать с русскими буквами без двойной кавычки = " Поэтому number "код" - вообще что то странное - это два столбца или же это столбец = "код" который имеет тип = number ? (в пострег такого типа нет) 2) столбец "Имя" - Имя у вас в столбце с большой буквы? или с маленькой? (в таблице имеется ввиду). Если в табл имя столбца = имя, то в запросе просто пишите = имя 3) у вас Windows или Linux 4) по поводу \COPY - гложат сомнения, т.к. дана команда = -с, что означает выполнить команду, а COPY в Постгрес работает без косой черты COPY Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
я бы записал код так psql -U postgres -d prom -h 192.18.12.10 -t -q -c "COPY (SELECT number, код, replace('(extended_info#>)',{owner,Name}')::text,'"','') имя FROM table) TO D:\dump\test.csv WITH (FORMAT CSV, HEADER, DELIMITER e';');" -t - q не помню, но верю вам на слово. где Код: sql 1. 2. 3.
(extended_info#>'{owner,Name}' = вообще странный кусок кода не хватает кавычек или у вас extended_info#> это переменная тогда откуда она взялась? в общем в это коде три ошибки 1) replace('(extended_info#>)',{owner,Name}')::text,'"','') 2) \COPY 3) HEADER Код: sql 1. 2. 3.
. Поэтому кусок кода про замену чего то на текстовой массив вообще не понял. . ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 15:20 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
О-О-О, что то вы бред написали... COPY это серверная комманда и выполняется на сервере а \COPY это psql комманда и выполяется на КЛИЕНТЕ. Соответветсвенно если клиент и сервер на разных серверах то результаты будут ОЧЕНЬ РАЗНЫЕ. "Поэтому number "код" - вообще что то странное - это два столбца или же это столбец = "код" который имеет тип = number ? (в пострег такого типа нет)" это значение ПОЛЯ number в колонке с названием "код" так что никакой тут проблемы с этим нет хотя я бы для понятности AS "код" бы писал. "Имя" название колонки в выводе (AS "Имя"). Притензия к extended_info#>'{owner,Name}' тоже не понятна... extended_info - поле в таблице к которому применяется оператор #> ( jsonb #> text[] → jsonb Extracts JSON sub-object at the specified path, where path elements can be either field keys or array indexes. '{"a": {"b": ["foo","bar"]}}'::json #> '{a,b,1}' → "bar" ) Вообще вы слишком часто тут ересь полную пишете, рекомендую изучить матчасть сначала. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 15:32 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
Maxim Boguk, Я уверен в своей правоте и вот пример работы кода: это локальный запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 16:14 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
Maxim Boguk, А вот это запрос через сеть Специально добавил столбец ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 16:15 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
Maxim Boguk, И кусок кода replace((extended_info#>'{owner,Name}')::text,'"','' мне непонятен я не понимаю что хочет сделать код в этой записи в инструкции четко сказано" replace - это замена текста " объединение json массивов, или объединение массивов в текстовую запись - это другие функции. Вот я вижу так ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 16:21 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
О-О-О Maxim Boguk, А вот это запрос через сеть Специально добавил столбец Вы всеравно с одной физической машины делаете... причем тут сеть то? Где по вашему образуется файл после команды COPY если база на одном сервере а psql запускается на другом? авторИ кусок кода replace((extended_info#>'{owner,Name}')::text,'"','' мне непонятен я не понимаю что хочет сделать код в этой записи в инструкции четко сказано" replace - это замена текста " объединение json массивов, или объединение массивов в текстовую запись - это другие функции. и так идем в поле extended_info из него по пути ->owner->Name достаем значение из поля в виде jsonb что то вида "Иван Иваныч" превращаем этот "Иван Иваныч" jsonb в тип текст (кавычки при этом остаются) и через replace '"', '' эти кавычки убираем... что тут блин непонятного??? PS: пи.... понабрали по обьявлениям. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 19:31 |
|
copy: ошибка разбора в конце строки
|
|||
---|---|---|---|
#18+
per, Изучить програмированние на shell и правила escape там. Если бы у вас был линукс я бы сказал что вам было надо что то вида Код: plaintext
-- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2021, 09:14 |
|
|
start [/forum/topic.php?fid=53&fpage=10&tid=1993999]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 129ms |
0 / 0 |