PostgreSQL是無法與用戶在這種情況下那麼友善,有沒有什麼方法可以自動將文字轉換爲文本來定義爲anyelement的參數?
CREATE FUNCTION foo(anyelement) RETURNS text AS $$
SELECT 'The type is ' || pg_typeof($1);
$$ LANGUAGE SQL IMMUTABLE;
SELECT foo(123); -- OK
SELECT foo('123'::text); -- OK
SELECT foo('123'); -- ERROR
有一個「選項」,一個(低成本)的解決辦法,以避免這種中斷?
也許一些「自動鑄造」的文字到文字轉換?在pg9 +沒有關於它的消息?
您可以使用顯式參數類型爲您聲明重載函數:CREATE FUNCTION foo(anyelement)RETURNS text AS ...; CREATE FUNCTION foo(text)RETURNS text AS ...;' – Abelisto