尝试将列类型从文本更改为几何时出错



我在postgres数据库中有一个表,我从Matlab上传。由于 Matlab 不知道几何类型,我无法上传带有十六进制字符串的相应列作为几何类型数据并将它们作为文本上传。当我现在尝试使用以下代码将列类型更改为几何图形时,我收到一条错误消息。

Alter Table data_table alter column geom type geometry;

错误:十六进制字符串无效,长度 (1107477( 必须是 二!SQL 状态:XX000

该错误意味着geometry输入函数期望字符串采用 EWKB 格式,其中每个字节由两个十六进制数字表示。显然,数据不是这种格式。

如果您知道如何转换数据,则可以使用

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

这里some_function代表执行转换的函数或表达式。

最新更新