如何修复 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();
有带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();