在postgresql中以hstore数据类型返回的函数

时间:2013-09-16 11:40:49

标签: postgresql hstore

“hstoredata”是hstore类型的变量,它包含键值对。

即。例如:“hstoredata”变量包含键值对'"ed"=>"1", "id"=>"1", "age"=>"27"'

如果将“hstoredata”变量传递给函数select sampletest(hstoredata),则函数返回null。

-- Function: sampletest(hstore)

-- DROP FUNCTION sampletest(hstore)

CREATE OR REPLACE FUNCTION sampletest(hstoredata hstore)    
RETURNS SETOF void AS    
$BODY$     
DECLARE   
newhstoredata hstore;    
BEGIN    
    newhstoredata := samplehstore(hstoredata);    
    RAISE NOTICE 'newhstoredata: %', newhstoredata;    
END;    
$BODY$    
  LANGUAGE plpgsql VOLATILE    
  COST 100    
  ROWS 1000;    
ALTER FUNCTION sampletest(hstore)   
  OWNER TO postgres;

以下是函数samplehstore(hstore)

的程序
-- Function: samplehstore(hstore)

-- DROP FUNCTION samplehstore(hstore)

CREATE OR REPLACE FUNCTION samplehstore(hstoredata hstore)    
RETURNS SETOF void AS    
$BODY$     
BEGIN       
    RAISE NOTICE 'hstoredata: %', hstoredata;    
END;   
$BODY$    
LANGUAGE plpgsql VOLATILE    
COST 100
ROWS 1000;
ALTER FUNCTION samplehstore(hstore)
OWNER TO postgres;

1 个答案:

答案 0 :(得分:1)

目前还不清楚你究竟在问什么,但根据标题,我认为你希望你的功能能够归还。

如果是这样,这里的问题是你宣布你的函数是返回setof void

将其声明为返回应有的内容,并使用return ...return query ...,具体取决于您实际需要的内容。