在postgresql中创建函数时,是否可以将hstore声明为参数类型?
CREATE FUNCTION samplehstore(uname hstore)
RETURNS SETOF void AS
DECLARE
BEGIN
RAISE NOTICE 'uname : %', uname ;
END;
LANGUAGE plpgsql
答案 0 :(得分:1)
是。刚刚测试过:
create or replace function samplehstore(_h hstore)
returns text as
$$
begin
return _h->'a';
end
$$
language plpgsql;
select samplehstore('a=>1'::hstore)
>>> 1
答案 1 :(得分: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';
三者是等价的。请参阅docs for more information。