如何从Postgres函数返回字符串文字?
问题描述:
我得到这个工作,返回一个整数:如何从Postgres函数返回字符串文字?
CREATE FUNCTION my_function() RETURNS INTEGER AS $$
SELECT 1 AS result;
$$ LANGUAGE SQL;
但我想它返回一个字符串,所以我把它扭捏:
CREATE FUNCTION my_function() RETURNS TEXT AS $$
SELECT '1' AS result;
$$ LANGUAGE SQL;
但这种失败:
ERROR: return type mismatch in function declared to return text
DETAIL: Actual return type is unknown.
发生了什么?我怎样才能返回字符串'1'?
答
字符串文字的类型为unknown
。您可以明确指定这样的类型:默认情况下
SELECT TEXT '1' AS result;
“1”为varchar。您需要指定明确的类型转换: CREATE FUNCTION my_function()RETURNS TEXT AS $$ SELECT'1':: TEXT AS result; $$ LANGUAGE SQL; –
@IlyaDyoshin - 您的评论通常是正确的,但'1'默认显示'未知' –