Berikut adalah tiga opsi untuk membuat daftar semua prosedur tersimpan dalam database Postgres.
information_schema.routines Lihat
Tampilan ini berisi semua fungsi dan prosedur dalam database saat ini yang dapat diakses oleh pengguna saat ini (dengan cara menjadi pemilik atau memiliki hak istimewa).
Berikut ini contoh mengembalikan daftar prosedur tersimpan:
SELECT
routine_schema,
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE';
Jangan ragu untuk memasukkan lebih banyak kolom jika diperlukan. Anda bisa mendapatkan definisi prosedur dengan routine_definition kolom.
pg_proc Katalog
pg_catalog.pg_proc katalog menyimpan informasi tentang fungsi, prosedur, fungsi agregat, dan fungsi jendela.
Kita dapat menggabungkan ini dengan pg_catalog.pg_namespace katalog untuk memfilter hasil ke hanya prosedur dengan public ruang nama:
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';
Kami memfilter ke prokind dari p untuk membatasi hasil pada prosedur tersimpan.
Nilai yang mungkin adalah f untuk fungsi normal, p untuk sebuah prosedur, a untuk fungsi agregat, atau w untuk fungsi jendela.
Anda dapat menambahkan p.prosrc kolom untuk mendapatkan definisi prosedur. Atau Anda bisa melewati p.oid kolom ke pg_get_functiondef() fungsi. Fungsi ini akan menghasilkan CREATE OR REPLACE PROCEDURE pernyataan untuk prosedur tersimpan.
\df Perintah
Saat menggunakan psql, kita dapat menggunakan \df perintah:
\df
Secara default, ini hanya mengembalikan objek yang dibuat pengguna. Sebagai alternatif, Anda dapat memberikan pola atau S pengubah untuk memasukkan objek sistem.
Berikut ini contoh pemberian pola:
\df *album*
Contoh tersebut mempersempit hasil menjadi hanya fungsi/prosedur tersebut dengan teks album atas nama mereka.
Perhatikan bahwa perintah ini juga mengembalikan fungsi. Jenis rutin (mis. func , proc ) terdaftar dalam type kolom di output.