“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;
答案 0 :(得分:1)
目前还不清楚你究竟在问什么,但根据标题,我认为你希望你的功能能够归还。
如果是这样,这里的问题是你宣布你的函数是返回setof void
。
将其声明为返回应有的内容,并使用return ...
或return query ...
,具体取决于您实际需要的内容。