0

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.
4

2 回答 2

5

您已将hstore扩展安装到public架构中,该架构不在您的search_path. 要查找类型,您需要对它们进行模式限定,但您没有限定适用于这些类型的- 运算符。

这意味着hstore将找不到 ' 运算符定义。你必须:

  • OPERATOR(public.-)使用;对运算符进行模式限定
  • 穿上;public_ search_path或者
  • 卸载hstore然后将其安装search_path.

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

SELECT 1 OPERATOR(pg_catalog.-) 2;
于 2013-09-05T13:54:09.513 回答
0

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

public.fetchval(hstore, key)
于 2014-05-09T12:57:54.370 回答