Как исправить # 1366 - неверное строковое значение: '\ xE6 \ x10 \ x00 \ x00 \ x01 \ x01 ...' - PullRequest
0 голосов
/ 02 мая 2020

Я хочу преобразовать приложение ГИС с базой данных postgresql в mysql 8, я преобразовал многие запросы в запрос sql. приложение может работать, но оно не может показать много пространственных функций. Как геом этого места и так далее. Мне нужно ввести данные этого места в mysql 8. Итак, я попробовал ручной метод для ввода geom, с lat long в phpmyadmin.

, но для первого выполнения запроса.

INSERT INTO `restaurant`(`name`, `address`, `open`, `close`, `price`, `description`, `geom`, `id`) VALUES ('Ajo Paris', 'Jl. S. Parman No.126','' ,'' ,'15000' ,'' , ST_GeomFromText('POINT(100.3481273 -0.9175653)', 4326 ), 'R0001');

это была ошибка,

3617 - Широта 100.348127 вне диапазона в функции st_geomfromtext. Оно должно быть в пределах [-90.000000, 90.000000].

Я думаю, что у него неправильная позиция по длинному лату, поэтому я переворачиваю его

INSERT INTO `restaurant`(`name`, `address`, `open`, `close`, `price`, `description`, `geom`, `id`) VALUES ('Ajo Paris', 'Jl. S. Parman No.126','' ,'' ,'15000' ,'' , ST_GeomFromText('POINT(-0.9175653 100.3481273)', 4326 ), 'R0001');

, но его ошибка все еще

1366 - Неверное строковое значение: '\ xE6 \ x10 \ x00 \ x00 \ x01 \ x01 ...' для столбца 'geom' в строке 1

это может быть связано с сопоставлением столбца? Сортировка столбца: utf8_general_ci.

Если это не связано, в чем может быть проблема? n что я должен сделать, чтобы это исправить?

1 Ответ

0 голосов
/ 03 мая 2020

Я думаю, вы пытаетесь вставить значение типа GEOMETRY в столбец типа TEXT или CHAR.

Это не имеет особого смысла, даже если сработало. Геометрия не сохраняется как введенный вами текст, она преобразуется во внутреннее двоичное представление и должна храниться в типизированном столбце GEOMETRY. В противном случае вы не сможете сделать с ним много.

Определите столбец как geom GEOMETRY SRID 4326.

...