PostgreSQLに保存されている関数とプロシージャを見つけようとしています。 「結合」が使用されているソリューションのいくつかを見つけました。私はそれに最適な解決策/コマンドを探しています。
コマンドがある場合、私は本当に知りません。また、たとえばpg_catalog.pg_procとpg_catalog.pg_namespaceの間の結合ソリューションを使用して、1つのスキーマ内のすべての関数を一覧表示します。
参加して、必要なものを手に入れることができます。たとえば、このクエリは、スキーマ上のすべての関数の所有者を変更するコマンドを提供します。
SELECT 'ALTER FUNCTION '
|| quote_ident(n.nspname) || '.'
|| quote_ident(p.proname) || '('
|| pg_catalog.pg_get_function_identity_arguments(p.oid)
|| ') OWNER TO owner_usr;' AS command
FROM pg_catalog.pg_proc p
JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE n.nspname = 'your_schema';
そしてこれはあなたのすべてのユーザー定義関数をリストするはずです:
SELECT quote_ident(n.nspname) as schema , quote_ident(p.proname) as function
FROM pg_catalog.pg_proc p
JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE n.nspname not like 'pg%'
お役に立てば幸いです。
メタコマンドを使用して関数を取得できます
\df