Postgresql 函数在postgres中返回多行,其中包含一些空值
我对postgress方法中的函数没有什么问题。 我有以下职能:Postgresql 函数在postgres中返回多行,其中包含一些空值,postgresql,plpgsql,stored-functions,Postgresql,Plpgsql,Stored Functions,我对postgress方法中的函数没有什么问题。 我有以下职能: 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 exam
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;
从example_tab中选择x,y,null::varchar,z
并请从标记中删除mysql和sql server将null(未知值)转换为整数的逻辑是什么?我想是为了匹配返回表的类型