You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向PostgreSQL插入CSV中geography类型数据报几何格式错误如何解决

问题原因
  • 你存储的0101000020BB100000FCA776FD9E256240F2EBF2AD0F0D43C0是十六进制编码的扩展二进制空间数据(EWKB),既不是WKT文本格式,也不是原生二进制格式:
    • ST_GeomFromText要求输入WKT格式(如POINT(116.4 39.9)),传入十六进制串自然解析失败
    • ST_GeomFromWKB要求输入原生二进制(bytea类型),直接传入十六进制文本会被识别为普通字符串的二进制编码,和原始WKB内容完全不符
解决方案

直接使用decode函数将十六进制文本转为二进制,再调用对应的空间函数解析即可,针对geography类型推荐两种写法:

  1. 调用专门的geography解析函数(推荐)
insert into testtable values (@s1,@s2,@s3,@s4,@s5,@s6,@s7,@s8,@s9,@s10,@s11,@s12,@s13,@s14,@s15,@s16,@s17,@s18,@s19,@s20,@s21,@s22,@s23,@s24,@s25,@s26,@s27,ST_GeogFromEWKB(decode(@s28, 'hex')))
  1. 直接类型转换(写法更简洁)
insert into testtable values (@s1,@s2,@s3,@s4,@s5,@s6,@s7,@s8,@s9,@s10,@s11,@s12,@s13,@s14,@s15,@s16,@s17,@s18,@s19,@s20,@s21,@s22,@s23,@s24,@s25,@s26,@s27,('\x' || @s28)::geography)

注:你的EWKB本身已经携带SRID信息,不需要额外指定坐标系参数。

内容的提问来源于stack exchange,提问作者user3676367

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:27:01