如何修复 postgresql-9.6 中 json_object 的错误?

How can I fix the error with json_object in postgresql-9.6?

有带PostgreSQL数据库监控的Zabbix。 Zabbix 中有一个触发器不断发送垃圾邮件错误:

ERROR:  function json_object(text[], text[]) does not exist
LINE 11:    SELECT json_object(array_agg(name), array_agg(setting)) F...
                           ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
SQL state: 42883
Character: 190

找到了注册此触发器的模板。这是标准的,我试图在 Postgres 中单独请求一行,结果同样的错误。 请求本身:

select json_build_object('extensions',(select array_agg(extname) from (select extname from pg_extension order by extname) as e),'settings', (select json_object(array_agg(name),array_agg(setting)) from (select name,setting from pg_settings where name != 'application_name' order by name) as s));

有什么不对请大家指点

函数 json_object(text[], text[]) 存在于 PostgreSQL (documentation) 自版本 9.4 以来。 你确定你用的是9.4以上的版本吗?您可以查看:

SELECT version();