在 postgresql 中创建函数时是否可以将 hstore 声明为参数类型?
CREATE FUNCTION samplehstore(uname hstore)
RETURNS SETOF void AS
DECLARE
BEGIN
RAISE NOTICE 'uname : %', uname ;
END;
LANGUAGE plpgsql
在 postgresql 中创建函数时是否可以将 hstore 声明为参数类型?
CREATE FUNCTION samplehstore(uname hstore)
RETURNS SETOF void AS
DECLARE
BEGIN
RAISE NOTICE 'uname : %', uname ;
END;
LANGUAGE plpgsql
是的。刚刚测试:
create or replace function samplehstore(_h hstore)
returns text as
$$
begin
return _h->'a';
end
$$
language plpgsql;
select samplehstore('a=>1'::hstore)
>>> 1
您的示例理想地是正确的,但是您只是忘记将函数体包含在字符串中(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';
三者是等价的。有关更多信息,请参阅文档。