PostgreSQLで関数の定義(ソース)を取得する方法

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

PostgreSQL にはある特定の処理を「関数」として登録し、再利用する機能があります。

この記事ではその「関数」の定義内容を取得する SQL について解説します。

PostgreSQLで関数の定義(ソース)を取得する方法

PostgreSQLで関数の定義(ソース)を取得する SQL は pg_get_functiondef 関数を利用します。

実際の SQL は以下の通りです。

SELECT pg_get_functiondef( [取得する関数のoid] ) AS source

ここで注意が必要なのは PostgreSQL の関数はオーバライドが可能ということです。

つまり、同じ関数名で引数の違う関数を作成できるので、単純に「関数名」だけでは目的の関数のソースにアクセスできません

ここでは PostgreSQL が管理している OID を利用して関数のソースを取得しています。

関数の OID の取得方法は以下の記事を参考にしてください。

PostgreSQLで関数の一覧を取得する
PostgreSQLでSQLを使って関数の一覧を取得するにはinformation_schema.routines,pg_procスキーマーを参照して取得します。取得したいオーナー名やユーザー名を指定して実行すると、より絞り込んだ関数の一覧...

まとめ

PostgreSQLで関数の定義(ソース)を取得する SQL は pg_get_functiondef 関数を利用すればできます。

ただし、取得するためにはその関数の OID が必要です。

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