Select 函数空白结果中的语句

Select statement within function blank results

我正在使用 Postgresql 并尝试在要调用的函数中使用 select 语句。目前电话给我零结果

CREATE OR REPLACE FUNCTION f_all_male_borrowers
(
OUT p_given_names varchar(60), 
OUT p_family_name varchar(60), 
OUT p_gender_code integer
)


RETURNS SETOF record as $body$
declare body text;

BEGIN
SELECT into p_given_names,p_family_name, p_gender_code
borrower.given_names, borrower.family_name, gender.gender_code

FROM BORROWER

INNER join gender on borrower.gender_code=gender.gender_code

WHERE borrower.gender_code = '1';

RETURN ;

END;
$body$ LANGUAGE plpgsql;

函数调用:

select * from f_all_male_borrowers()

缺少什么,或者我在这里做错了什么?

谢谢

CREATE OR REPLACE FUNCTION f_all_male_borrowers
(
OUT p_given_names varchar(60), 
OUT p_family_name varchar(60), 
OUT p_gender_code integer
)
RETURNS SETOF record as 
$body$
SELECT into p_given_names,p_family_name, p_gender_code
borrower.given_names, borrower.family_name, gender.gender_code
FROM BORROWER
INNER join gender on borrower.gender_code=gender.gender_code
WHERE borrower.gender_code = '1';
$body$
LANGUAGE sql VOLATILE
  COST 100
  ROWS 1000;
ALTER FUNCTION f_all_male_borrowers()
  OWNER TO postgres;

试试这个,然后调用:

select * from f_all_male_borrowers();

在此之前,您需要检查您的查询是否有结果!!

创建函数后:

Got to Functions->Right click your function(ie,f_all_male_borrowers())-> Scripts->Select Script ->Then run it.

如果它 returns 结果那么你的程序是正确的。