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.