2017-06-05 8 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'はデフォルトで 'unknown'と表示されます –

答えて

1

文字列リテラルのタイプはunknownです。

SELECT TEXT '1' AS result; 
関連する問題