2017-06-05 70 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;