如何在postgres函数中找出varchar参数的长度

时间:2011-01-17 15:18:15

标签: postgresql

我正在尝试找出传递给postgres函数的varchar参数的参数长度。

我刚才的SQL在character_maximum_length列中没有值,我希望找到这个值

SELECT * 
FROM information_schema.parameters 
WHERE specific_schema='public' 
   AND specific_name  like 'foo' 
ORDER BY ordinal_position

1 个答案:

答案 0 :(得分:2)

我认为postgresql不保留这些信息。如果我create function foo(varchar(100)) returns boolean ...然后使用pg_dump转储架构,我会找到:

CREATE FUNCTION foo(character varying) RETURNS boolean
    LANGUAGE sql
    AS $$select true$$;

'100'规范消失了。并且将150个字符的字符串传递给foo(varchar)不会被困或任何东西。相比之下,如果我创建一个基于varchar(100)的域并根据其定义函数,那么传递一个超长字符串就会被捕获。