问题描述
在尝试在Postgresql中创建返回行并存储值的过程时,我一直坚持不懈: (我的代码是错误的,并且是不正确的)我没有找到明确的指南来解决该问题。
我需要打印记录并将行中的行数存储在Total中(还要如何调用Postgresql过程?)
CREATE OR REPLACE PROCEDURE EMP(max_base_salary integer,out total integer )
LANGUAGE 'plpgsql'
AS $BODY$
DECLARE
BEGIN
select count (*) from employees INTO total where base_salary<=max_base_salary;
select * from employees where base_salary<=max_base_salary;
END;
$BODY$;
解决方法
您将无法同时返回总数和记录。这是一个示例:
CREATE OR REPLACE FUNCTION EMP(max_base_salary integer) RETURNS SETOF employees
LANGUAGE 'plpgsql'
AS $BODY$
DECLARE
BEGIN
RETURN QUERY select * from employees where base_salary<=max_base_salary;
END;
$BODY$;
SETOF
设置为表格,而RETURN QUERY
用于将查询结果与SETOF
匹配。