PostgreSQLでストアドプロシジャの一覧を取得する

記事内に広告が含まれています。

PostgreSQL で SQL を使ってストアドプロシジャの一覧を取得するには information_schema.routines,pg_proc スキーマーを参照して取得します。

PostgreSQLでストアドプロシジャ一覧取得

PostgreSQLでSQLを使ってストアドプロシジャ一覧を取得するには information_schema.routines,pg_procスキーマーを参照する方法が簡単です。

実行する SQL は以下の通りです。

SELECT
     r.routine_name AS proname
    ,p.oid AS oid
    ,(SELECT pg_get_function_identity_arguments( p.oid )) AS param
FROM
     information_schema.routines AS r
    ,pg_proc AS p
WHERE
        r.specific_schema = current_schema()
    AND r.routine_type='PROCEDURE'
    AND r.routine_name = p.proname
GROUP BY
     r.routine_name
    ,p.oid
ORDER BY
     r.routine_name
    ,(SELECT pg_get_function_identity_arguments( p.oid ))

実行すると接続しているスキマー内の登録されているストアドプロシジャの一覧が取得できます。

ここで注意が必要なのは
PostgreSQL のストアドプロシジャーはオーバーロードが可能
です。

つまり同じ名前で引数の組み合わせが異なるストアドプロシジャーを作ることができます。

それに対応するためにあえて SELECT pg_get_function_identity_arguments( p.oid ) と oid を使って引数を取って区別できるようにしてあります。

タイトルとURLをコピーしました