postgresql - \copy PSQL 命令不适用于 POINT(...) 几何类型
问题描述
我一直在努力寻找解决方案很长一段时间...
Postgres 中的\copy
命令不适用于 datatype geography(Point,4326)
。
它给出的错误是:
ERROR: parse error - invalid geometry
HINT: "ST" <-- parse error at position 2 within geometry
CONTEXT: COPY data2, line 1, column loc: "ST_GeomFromText('POINT(62.0271954112486 87.9028962135794)')"
这是我正在使用的命令:
\copy data2(loc,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10) from 'fake_data.csv' delimiter ',' csv;
我已经使用与 csv 文件完全相同的格式插入到表中,并且它已经成功。似乎它只是\copy
命令不喜欢格式的东西。
这是我的 csv 文件中的示例行:
ST_GeomFromEWKT('SRID=4326;POINT(28.872109890126964 160.10529558104636)'),24.237968,129.512386,227.032799,27.644993,60.959401,25.178026,201.229746,34.178728,250.975993,3.635878
解决方案
您不能使用COPY
来处理这样的表达式。相反,该文件必须包含扩展的众所周知的二进制(EWKB) 格式,这是您在运行时得到的
SELECT ST_GeomFromEWKT('SRID=4326;POINT(81.5538863138809 42.72341176405514)');
在您的情况下,CVS 文件必须如下所示:
0101000020E61000000C9D009842DF3C403DA0D6945E036440,24.237968,129.512386,227.032799,27.644993,60.959401,25.178026,201.229746,34.178728,250.975993,3.635878
推荐阅读
- ruby-on-rails - Rails 安装错误构建 gem 原生扩展
- python - 客户端-服务器:客户端未从服务器接收任何数据
- sqlite - Grafana - 使用自定义 js 函数进行数据转换
- java - 从消息中删除/删除嵌入
- clearml - 如何在 ClearML Web UI 中管理数据集?
- ios - React Native iOS 按需资源
- python - Pandas:有没有比 merge() 更高效的方法来连接其他 Dataframe 的几列?
- android - Android如何支持Google Play商店中的所有原生平台总是显示138
- python - 将多项式拟合到 35 阶数据
- javascript - 对齐内容以适合背景图像