Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 JSONB и ASCii-символы <32  [new]
tip78
Member

Откуда: Москва
Сообщений: 442
всем привет
я тут пытаюсь таблицы из мускуля в пг загнать через COPY FROM, а там в колонке под JSONB есть такая строка:
автор
Еганово воладарски шоссе 22\1"}

и в итоге я ловлю ошибку:
автор
Символ с кодом 0x01 необходимо экранировать.

из-за \1
получается, что пользовательские данные вообще в jsonb совать нельзя, потому что все такие сюрпризы не отловишь
или как быть?
24 сен 17, 21:20    [20819331]     Ответить | Цитировать Сообщить модератору
 Re: JSONB и ASCii-символы <32  [new]
tip78
Member

Откуда: Москва
Сообщений: 442
точнее стандартно от юзера можно это провалидировать, но вот пропустит ли его ПХП pg_query_params() ?
24 сен 17, 21:28    [20819342]     Ответить | Цитировать Сообщить модератору
 Re: JSONB и ASCii-символы <32  [new]
tip78
Member

Откуда: Москва
Сообщений: 442
но anyway, с COPY FROM то что делать?
24 сен 17, 21:28    [20819344]     Ответить | Цитировать Сообщить модератору
 Re: JSONB и ASCii-символы <32  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 306
tip78
пропустит ли его ПХП pg_query_params() ?

pg_query_params гарантирует корректную передачу параметра в запрос.
То что параметр вы будете использовать как несовместимый с каким-то типом данных - это ваши проблемы. Например, строку попробуете запихать в число, или как сейчас некорректно сформированный json.

А теперь ещё раз и сначала:
- какой тип данных в mysql
- как формируете copy
- какая структура таблицы в pg
- валидный ли json получается в copy (хинт: невалидный. Для строкового значения "22\1" валидным json представлением будет "22\\1")
24 сен 17, 22:48    [20819460]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить