【问题标题】:How to get a list of UDFs in Redshift?如何在 Redshift 中获取 UDF 列表?
【发布时间】:2016-01-10 01:44:18
【问题描述】:

是否有一种简单的方法可以获取 Redshift 中可用的所有 UDF 的列表? 此外,我想查找具有参数类型的 UDF,并按名称搜索 UDF。

【问题讨论】:

    标签: amazon-redshift


    【解决方案1】:

    您可以查询pg_proc 表以获取所有可用的UDF。

    按名称过滤

    您可以使用proname 列按名称过滤:

    SELECT * FROM pg_proc WHERE proname ILIKE '%<name_here>%';

    按参数类型过滤

    您可以使用proargtypes 列按参数类型进行过滤:

    SELECT * FROM pg_proc WHERE proargtypes = 1043;

    这里,1043varchar,通过查询pg_type 表可以看出:

    SELECT * FROM pg_type WHERE typname ILIKE '%char%';

    按参数名称过滤

    您还可以使用proargnames 列按参数名称进行过滤:

    SELECT * FROM pg_proc WHERE proargnames = ARRAY['foo'];

    参考资料:

    http://docs.aws.amazon.com/redshift/latest/dg/c_join_PG.html

    http://www.postgresql.org/docs/8.0/static/catalog-pg-proc.html

    【讨论】:

    • 这真的很有用。奇怪的是,我的 sql 客户端 (Postico) 要求我明确选择 oid 才能看到它们:select oid, * from pg_type;。不太清楚为什么,但这让我很困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 2015-02-05
    相关资源
    最近更新 更多