代码之家  ›  专栏  ›  技术社区  ›  user2624443

Substract 2 hstore,您可能需要添加显式类型强制转换

  •  1
  • user2624443  · 技术社区  · 11 年前

    postgres的文档有hstore-hstore,它从左操作数中删除匹配的对。已安装postgres扩展。

    当我尝试的时候

    select public.hstore('"x"=>"30", "y"=>"c"') - 
           public.hstore('"x"=>"30","y"=>"fred"')
    

    正在使用以下内容出错

    ERROR:  operator does not exist: public.hstore - public.hstore
    LINE 3:  select public.hstore('"x"=>"30", "y"=>"c"') - public.hstore...
                                                         ^
    HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
    
    2 回复  |  直到 11 年前
        1
  •  6
  •   Craig Ringer    11 年前

    您已安装 hstore 扩展到 public 架构,它不在您的 search_path 。要查找 类型 您对它们进行了模式限定,但对 - 操作人员 适用于这些类型。

    这意味着 H矿石 将找不到的运算符定义。您必须:

    • 架构使用限定运算符 OPERATOR(public.-) ;
    • 平民的 搜索路径 ; 或
    • 卸载 H矿石 然后将其安装到自己的专用模式中 搜索路径 .

    模式限定运算符语法的示例是:

    SELECT 1 OPERATOR(pg_catalog.-) 2;
    
        2
  •  0
  •   Vince    11 年前

    我也遇到了这个问题,我的代码对我没有任何作用(通过pgadmin-query工作)。最终,在查看了公共部门的职能后,我发现这对我很有效。

    public.fetchval(hstore, key)