2017-06-05 111 views
1

我得到这个工作,返回一个整数:如何从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'?

+0

“1”为varchar。您需要指定明确的类型转换: CREATE FUNCTION my_function()RETURNS TEXT AS $$ SELECT'1':: TEXT AS result; $$ LANGUAGE SQL; –

+0

@IlyaDyoshin - 您的评论通常是正确的,但'1'默认显示'未知' –

回答

1

字符串文字的类型为unknown。您可以明确指定这样的类型:默认情况下

SELECT TEXT '1' AS result;