Ошибка при попытке изменить тип столбца с текста на геометрию - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть таблица в базе данных postgres, которую я загрузил из Matlab.Поскольку Matlab не знает тип геометрии, я не мог загрузить соответствующий столбец с шестнадцатеричными строками в качестве данных типа геометрии и загрузить их в виде текста.Когда я сейчас пытаюсь изменить тип столбца на геометрию с помощью приведенного ниже кода, я получаю сообщение об ошибке.

Alter Table data_table alter column geom type geometry;

ОШИБКА: неверная шестнадцатеричная строка, длина (1107477) должна быть кратнадва!Состояние SQL: XX000

1 Ответ

1 голос
/ 19 сентября 2019

Ошибка означает, что функция ввода geometry ожидает, что строка будет в формате EWKB, где каждый байт представлен двумя шестнадцатеричными цифрами.Очевидно, что данные не в этом формате.

Если вы знаете, как преобразовать данные, вы можете использовать

ALTER TABLE data_table
ALTER geom TYPE geometry
   USING some_function(geom);

Здесь some_function обозначает функцию или выражение, которое выполняет преобразование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...