Postgresデータベース内のすべてのストアドプロシージャを一覧表示するための3つのオプションがあります。
information_schema.routines
表示
このビューには、現在のユーザーが(所有者であるか何らかの特権を持っていることによって)アクセスできる現在のデータベース内のすべての関数とプロシージャが含まれています。
ストアドプロシージャのリストを返す例は次のとおりです。
SELECT
routine_schema,
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE';
必要に応じて、列を追加してください。プロシージャの定義は、routine_definition
で取得できます。 列。
pg_proc
カタログ
pg_catalog.pg_proc
カタログには、関数、プロシージャ、集計関数、およびウィンドウ関数に関する情報が格納されています。
これをpg_catalog.pg_namespace
と結合できます public
を使用するプロシージャのみに結果をフィルタリングするカタログ 名前空間:
SELECT
n.nspname,
p.proname
FROM
pg_catalog.pg_namespace n
JOIN
pg_catalog.pg_proc p ON
p.pronamespace = n.oid
WHERE
p.prokind = 'p'
AND
n.nspname = 'public';
prokind
にフィルタリングしました p
の 結果をストアドプロシージャに制限します。
f
です。 通常の機能の場合、p
手順については、a
集計関数の場合、またはw
ウィンドウ関数の場合。
p.prosrc
を追加できます プロシージャの定義を取得するための列。または、p.oid
を渡すこともできます pg_get_functiondef()
への列 働き。この関数は、CREATE OR REPLACE PROCEDURE
を生成します ストアドプロシージャのステートメント。
\df
コマンド
psqlを使用する場合、\df
を使用できます コマンド:
\df
デフォルトでは、これはユーザーが作成したオブジェクトのみを返します。または、パターンまたはS
を指定することもできます システムオブジェクトを含めるための修飾子。
パターンを提供する例を次に示します。
\df *album*
この例では、結果をalbum
というテキストを含む関数/プロシージャのみに絞り込みます。 彼らの名前で。
このコマンドは関数も返すことに注意してください。ルーチンタイプ(例:func
、proc
)はtype
にリストされています 出力の列。