我有一个名为mypsqldb
的PostgreSQL数据库,其中包含一个名为mypostgistable
的表。它位于Linode托管的Ubuntu 14.04映像上。我从终端运行了这些命令。
sudo su - postgres
psql
\c mypsqldb
create extension postgis;
SELECT json_build_object('type','Feature','geometry',ST_AsGeoJSON(geom)::json) FROM mypostgistable;
我收到此错误:HINT: No function matches the given name and argument types. You might need to add explicit type casts.
但是当我在运行Debian 9的桌面计算机上运行相同的查询时,我没有收到任何错误并且查询成功执行。
我已在桌面和Linode服务器上运行sudo apt-get install && sudo apt-get upgrade
和sudo apt-get install postgresql postgis*
。
这是我运行SELECT version();
时每台机器的输出。
Linode / Ubuntu 14.04:PostgreSQL 9.3.22 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, 64-bit
。
桌面/ Debian 9:PostgreSQL 9.6.7 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18) 6.3.0 20170516, 64-bit
为什么Linode服务器上的查询失败?
答案 0 :(得分:1)
json_build_object首次出现在PostgreSQL 9.4中。
答案 1 :(得分:0)
我最终使用了此处发布的指南:http://archive.is/OfZPI