powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / передача blob
21 сообщений из 21, страница 1 из 1
передача blob
    #39016996
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть csv файл выгружена с oracle содржить поле с blob
данные 96000100CA90010097080022640A2F68A64205 и т.д.
при загрузке командой copy данные данного поля загружаются не так как в csv
как правильно перегнать blob поле, что ри загрузке оно не видоизменялось
...
Рейтинг: 0 / 0
передача blob
    #39017025
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deviousесть csv файл выгружена с oracle содржить поле с blob
данные 96000100CA90010097080022640A2F68A64205 и т.д.
при загрузке командой copy данные данного поля загружаются не так как в csv
как правильно перегнать blob поле, что ри загрузке оно не видоизменялось
а как вы смотрите ?
сделайте
SET bytea_output ......;
и посмотрите ещё раз
...
Рейтинг: 0 / 0
передача blob
    #39017304
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

в то то и дело, что странно, если гружу через клиента (с одного датасет в другой), то все в норме а если COPY то получается ерунда
в оракле
96000100CA90010097080022640A2F68A64205
в файле
96000100CA90010097080022640A2F68A64205
загружаю через клиента
\x96000100CA90010097080022640A2F68A64205
а вот если гружу с помощью copy
\x393630303031 и т.д.
не понимаю почему так
может, blob надо как то экранировать или указать PG, чтоб грузил как есть в файле ?
...
Рейтинг: 0 / 0
передача blob
    #39017305
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
devious,

забыл написать смотрю данные PSQL Console :)
...
Рейтинг: 0 / 0
передача blob
    #39017423
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
devious,
коллеги не кто не сталкивался?
...
Рейтинг: 0 / 0
передача blob
    #39017447
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deviousзагружаю через клиента
\x96000100CA90010097080022640A2F68A64205
а вот если гружу с помощью copy
\x393630303031 и т.д.не сложно сделать вывод, что hex-кодирование в случае copy не происходит и загружаются представленные символы.
и совсем не обязательно быть эйнштейном, чтобы подсмотреть результат copy to stdin на бинарных данных.
...
Рейтинг: 0 / 0
передача blob
    #39017452
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я далеко не энштей, но так и не понимаю как загрузить бинарные данные с помощью copy чтоб они оставались, как в файле
...
Рейтинг: 0 / 0
передача blob
    #39017534
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deviousесть csv файл выгружена с oracle содржить поле с blob
расплывчато. csv и blob - паралленые вселенные. что все-таки "содржить" файл женского рода без знаков препинания и что за таблица, владеешь ли ты магией ctrl-c/ctrl-v или редактирования файла - гадать лень.
...
Рейтинг: 0 / 0
передача blob
    #39017550
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
p2.,

за ошибки извините с телефона в дороге писать сложно
вот файл для примера
выгружен с oracle всего 1 поле
...
Рейтинг: 0 / 0
передача blob
    #39017552
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
первые 2 символа в нем лишние, выгружается без них
...
Рейтинг: 0 / 0
передача blob
    #39018245
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
devious,

вариантов нет?
...
Рейтинг: 0 / 0
передача blob
    #39019905
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
postgres=# create table t0(b bytea, t text);
CREATE TABLE
postgres=# copy t0(b) from program $$wget -q -O - 'http://www.sql.ru/forum/actualfile.aspx?id=17944757'$$;
ERROR:  invalid byte sequence for encoding "UTF8": 0x96
CONTEXT:  COPY t0, line 1: "\x96000100CA90010097080022640A2F68A6420504000000000604900CC71A0504010000000604D502E61405040200000006..."
postgres=# copy t0(b) from program $$wget -q -O - 'http://www.sql.ru/forum/actualfile.aspx?id=17944757' | sed 's/\\x/\\\\x/'$$;
COPY 1
postgres=# select encode(substr(b, 1, 10), 'hex')||'...' from t0;
        ?column?         
-------------------------
 96000100ca9001009708...
(1 row)
...
Рейтинг: 0 / 0
передача blob
    #39020048
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, но это понятно ,что при encode он приводит в нужный вид! но нужно чтоб он грузил уже так как есть в CSV
я писал, что когда гружу через клиента с одного dataset в другой (через delphi), что записывается как надо в hex, а через copy нет
...
Рейтинг: 0 / 0
передача blob
    #39022716
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
devious,

ничего не понимаю, голову сломал!
...
Рейтинг: 0 / 0
передача blob
    #39022741
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
devious,

Загружаю из файла

96000100CA90010097080022640A2F68A6420504000000000604900CC71A0504010000000604D502E61405040200000006042B24A0440504030000000604DB64276B05040A0000000604B1DB5F3005040400000006044EAAAA720504090000000604BC148E7905040500000006048B0F9E07050406000000060477E794570504070000000604B93B767E0504080000000604FEC31E7D0200CA9C01009708000ACDC1756AA8420504000000000604010000000504010000000604020000000504070000000604A752A73D05040200000006040300000005040300000006040400000005040400000006040500000005040500000006040600000005040600000006042BC1FA300504080000000604000000000504090000000604E2D9590005040A0000000604C5E7E00005040B00000006041A2F90000300CA840100970800C31DED3DA8BE420504000000000604010000000504010000000604020000000504020000000604030000000504070000000604080000000504030000000604040000000504040000000604050000000504050000000604060000000504060000000604070000000504080000000604CC65E90005040900000006041C47AB000400CA00



Получаю в PG

Select b from to

\x39363030303130304и т.д.



Select encode(b, ‘hex’) from to

\x39363030303130304
...
Рейтинг: 0 / 0
передача blob
    #39022773
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deviousголову сломал!И причина и вариант обхода приведены. Если бы было, что ломать, за неделю можно дотугодуматься и без обращения на форум.
...
Рейтинг: 0 / 0
передача blob
    #39022809
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
p2.,
я предлагаю и настаиваю прекратить хамить! раз такой умный прохходи мимо!
...
Рейтинг: 0 / 0
передача blob
    #39022827
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deviousdevious,

Загружаю из файла

96000100CA90010097080022640A2F68A6420504000000000604900CC71A0504010000000604D502E61405040200000006042B24A0440504030000000604DB64276B05040A0000000604B1DB5F3005040400000006044EAAAA720504090000000604BC148E7905040500000006048B0F9E07050406000000060477E794570504070000000604B93B767E0504080000000604FEC31E7D0200CA9C01009708000ACDC1756AA8420504000000000604010000000504010000000604020000000504070000000604A752A73D05040200000006040300000005040300000006040400000005040400000006040500000005040500000006040600000005040600000006042BC1FA300504080000000604000000000504090000000604E2D9590005040A0000000604C5E7E00005040B00000006041A2F90000300CA840100970800C31DED3DA8BE420504000000000604010000000504010000000604020000000504020000000604030000000504070000000604080000000504030000000604040000000504040000000604050000000504050000000604060000000504060000000604070000000504080000000604CC65E90005040900000006041C47AB000400CA00



Получаю в PG

Select b from to

\x39363030303130304и т.д.



Select encode(b, ‘hex’) from to

\x39363030303130304

В загружаемом файле bytea должны представляться в виде
COPY a (val) FROM stdin;
\\x96000100ca90010097080022640a2f68a6420504000000000604900cc71a0504010000000604d502e61405040200000006...
Обратите внимание на ДВА слеша в начале перед x.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
передача blob
    #39032876
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

спасибо, попробовал
но при такой команде возникает ошибка

toro=# \copy table from 'c:\table.csv' delimiter '^' null '';

ERROR: invalid hexadecimal digit: "\"

COPY mtd_tree, line 416, column raw_content: "\x9600012AC4EEEA

F3ECE5EDF2FB5CD0F3EAEEE2EEE4F1F2E2EE20EFEEEBFCE7EEE2E0F2E5EBFF20CEC3DD2E646F6302

044F..."

toro=#
...
Рейтинг: 0 / 0
передача blob
    #39032882
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deviousMaxim Boguk,

спасибо, попробовал
но при такой команде возникает ошибка

toro=# \copy table from 'c:\table.csv' delimiter '^' null '';

ERROR: invalid hexadecimal digit: "\"

COPY mtd_tree, line 416, column raw_content: "\x9600012AC4EEEA

F3ECE5EDF2FB5CD0F3EAEEE2EEE4F1F2E2EE20EFEEEBFCE7EEE2E0F2E5EBFF20CEC3DD2E646F6302

044F..."

toro=#

надо смотреть на 415-416 линии в файле что там такое лежит странное

PS: такие вещи сначала на тестовых примерах длинной в 5-10 байт и в 10-100 строк проверяют... а потом уже когда все провернно и работает начинают работать с реальными данными (чтобы не гадать или в реализации где то ошибка или в реальных данных мусор какой то).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
передача blob
    #39032906
devious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

согласен,
на 5 записях, все отлично
что то странное в 414 строке, буду разбираться
всем спасибо огромное
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / передача blob
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]