提示:没有函数匹配给定的名称和参数类型。 `json_build_object`

时间:2018-05-06 22:00:58

标签: linux postgresql postgis

我有一个名为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 upgradesudo 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服务器上的查询失败?

2 个答案:

答案 0 :(得分:1)

json_build_object首次出现在PostgreSQL 9.4中。

答案 1 :(得分:0)

我最终使用了此处发布的指南:http://archive.is/OfZPI