微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:函数 to_jsonb(text, jsonb) 不存在 - POSTGRESQL

如何解决错误:函数 to_jsonb(text, jsonb) 不存在 - POSTGRESQL

我有 Postgresql v12,这段代码在这个版本中对我来说很好用。我不知道这是否是版本问题,但我想使用 POSTGREsql v9.4

----------------------- Function Start v1.0 ------------------------------
drop function if exists aa_Dev.VDN();
CREATE OR REPLACE FUNCTION aa_dev.VDN()
  RETURNS VOID AS
$$
declare 

    tempp json;

begin

    DROP TABLE IF EXISTS aa_dev.sdg_vdn;

    CREATE TABLE IF NOT EXISTS aa_dev.sdg_vdn (
        VDN INT,skills INT[]
    );
    
    tempp := (select VDN_group from aa_dev.sdg_Metadata);

    insert into aa_dev.sdg_vdn (vdn,skills)
    select (jsonb_populate_record(null::aa_dev.sdg_vdn,to_jsonb(t))).*
    from jsonb_each(tempp::jsonb) as t(vdn,skills);


end

$$
LANGUAGE plpgsql;

----------------- Function Ends ----------------------
select * from aa_dev.VDN();
select * from aa_dev.sdg_vdn;

所以错误

sql Error [42883]: ERROR: function to_jsonb(text,jsonb) does not exist
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Where: PL/pgsql function aa_dev.vdn() line 17 at sql statement

如何消除此错误并在 postgresql 9.4 中运行该函数。我对这个版本有限制。

解决方法

9.4 版本对 jsonb 有一些支持。 https://www.postgresql.org/docs/9.4/functions-json.html

您可以使用 to_jsonb(t) 代替 to_json(t)::jsonb

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。