0

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

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

如果“hstoredata”变量被传递给函数,即select sampletest(hstoredata)函数返回为空。

-- 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;
4

1 回答 1

1

目前尚不清楚您要确切地问什么,但根据标题,我假设您希望您的函数返回一些东西。

如果是这样,这里的问题是您将函数声明为返回setof void

将它声明为返回它应该返回的任何内容,并根据您的实际需要使用return ...or 。return query ...

于 2013-09-16T13:42:41.647 回答