postgres 中的函数,返回许多具有一些空值的行



我对后退手段中的函数几乎没有问题。 我有功能:

CREATE OR REPLACE FUNCTION test(
x integer,
y character varying,
z character varying
)
RETURNS TABLE(x1 int, y1 varchar,n1 varchar,z1 varchar) AS
$BODY$
BEGIN
RETURN QUERY
SELECT  x,y,null,z  FROM example_tab            
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;

当我执行这个函数时,我出错了:

Error: Returned type unknown does not match expected type character varying in column 3.
SELECT * FROM test(694531020,'t'::varchar,'t'::varchar) 

我应该怎么做才能正确运行此查询并执行此函数???

您应该显式指定 null 的数据类型,例如:

CREATE OR REPLACE FUNCTION test(
x integer,
y character varying,
z character varying
)
RETURNS TABLE(x1 int, y1 varchar,n1 varchar,z1 varchar) AS
$BODY$
BEGIN
RETURN QUERY
SELECT  x,y,null::varchar,z  FROM example_tab            
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;

相关内容

最新更新