PostgreSQL中的Hstore作为参数类型

3
在创建postgresql函数时,是否可以将hstore声明为参数类型?
CREATE FUNCTION samplehstore(uname hstore)
RETURNS SETOF void AS 
DECLARE 
BEGIN
RAISE NOTICE 'uname : %', uname ;        
END;
LANGUAGE plpgsql
2个回答

1
是的。刚刚测试过了:
create or replace function samplehstore(_h hstore)
returns text as
$$
begin
    return _h->'a';
end
$$
language plpgsql;

select samplehstore('a=>1'::hstore)
>>> 1

@user2664380,是的,您可以将hstore类型用作函数的输入参数,我的示例清楚地展示了这一点。 - Roman Pekar

0

你的例子理论上是正确的,但你忘记将函数体放在字符串中(hstore 部分没问题)。我建议这样做(看到添加的 $$):

CREATE FUNCTION samplehstore(uname hstore)
RETURNS SETOF void AS $$
DECLARE 
BEGIN
    RAISE NOTICE 'uname : %', uname ;        
END;
$$
LANGUAGE plpgsql;

PostgreSQL的函数基本上是一个字符串,而美元引用是类似于单引号的语法,请尝试以下代码:

SELECT $$my string$$, $id$my string$id$, 'my string';

三者等效。请参阅文档以获取更多信息

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接