Function PostgreSQL函数返回类型记录显示错误
我已成功创建了下表和function.function,但当我调用 函数,它显示错误Function PostgreSQL函数返回类型记录显示错误,function,record,postgresql-9.1,Function,Record,Postgresql 9.1,我已成功创建了下表和function.function,但当我调用 函数,它显示错误 create table emp_details(empno int,ename varchar(20),sal numeric(7,2)) insert into emp_details values(101,'John',4500) insert into emp_details values(101,'david',5000) CREATE OR REPLACE FUNCTION test_selec
create table emp_details(empno int,ename varchar(20),sal numeric(7,2))
insert into emp_details values(101,'John',4500)
insert into emp_details values(101,'david',5000)
CREATE OR REPLACE FUNCTION test_select(IN eno integer)
RETURNS SETOF RECORD AS
$body$
BEGIN
RETURN QUERY
SELECT ename,sal FROM EMP_DETAILS WHERE EMPNO=eno;
END;
$body$
LANGUAGE plpgsql
函数创建成功。但是在调用函数时。它显示错误。如何在记录类型中实现
select test_select(101)
改为使用returns表,这样在使用函数时就不需要指定列名。您不需要PL/pgSQL,如果您只想包装一个查询,那么语言sql函数会更有效
CREATE OR REPLACE FUNCTION test_select(IN eno integer)
RETURNS TABLE (ename text, sal numeric)
AS
$body$
SELECT ename,sal
FROM emp_details
WHERE EMPNO=eno;
END;
$body$
LANGUAGE sql;
无论定义为returns setof还是with returns table,设置返回函数都需要在FROM子句中使用,因此您需要如下使用它:
挑选*
从测试中选择101;
Postgres 9.1是您应该尽快计划升级。谢谢。假设我使用setof记录作为返回类型,我必须在我的函数中使用out参数,对吗?