СОВЕТ: ни одна функция не соответствует заданному имени и типу аргумента. `json_build_object` - PullRequest
0 голосов
/ 07 мая 2018

У меня есть база данных PostgreSQL с именем mypsqldb с таблицей с именем mypostgistable. Это на образе Ubuntu 14.04, размещенном на Linode. Я выполнил эти команды из терминала.

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, я не получаю сообщение об ошибке, и запрос успешно выполняется.

Я уже запустил sudo apt-get install && sudo apt-get upgrade, а также sudo apt-get install postgresql postgis* как на своем компьютере, так и на сервере Linode.

Вот выходные данные для каждой машины, когда я запускаю SELECT version();.

Линод / 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 голосов
/ 07 мая 2018

Я в конечном итоге использовал руководство, размещенное здесь: http://archive.is/OfZPI

0 голосов
/ 07 мая 2018

json_build_object впервые появился в PostgreSQL 9.4.

...