Bagaimana Anda melihat prosedur / fungsi yang tersimpan?
Katakanlah saya memiliki fungsi lama tanpa definisi asli - Saya ingin melihat apa yang dilakukannya di pg / psql tetapi sepertinya saya tidak dapat menemukan cara untuk melakukannya.
menggunakan Postgres versi 8.4.1
postgresql
stored-procedures
sayang
sumber
sumber
\df+ <function_name>
di psql .sumber
\x
perintah meta psql sebelum menampilkan definisi fungsi.\x
juga berguna untuk melihat hasil query yang berisi record dengan string panjang.\ef <function_name>
di psql. Ini akan memberikan seluruh fungsi dengan teks yang dapat diedit.sumber
;
<enter>
setelah menjalankan buffer.ERROR: more than one function named
Ini memberitahu penangan fungsi bagaimana memanggil fungsi tersebut. Ini mungkin kode sumber sebenarnya dari fungsi untuk bahasa yang diinterpretasikan, simbol tautan, nama file, atau apa saja, tergantung pada bahasa implementasi / konvensi panggilan
sumber
psql
. Perhatikan bahwa nama fungsi tampaknya diturunkan.SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. Ini setidaknya di Hal 9.6. Anda bisa mendapatkan kode numerik dari tipe melalui propertiproargtypes
, tetapi Anda harus bergabung dengan beberapa tabel lain untuk mendapatkan ini sebagai nama.Gunakan
\df
untuk mendaftar semua prosedur yang disimpan di Postgres.sumber
Jika ada yang bertanya-tanya bagaimana cara membuat kueri tabel katalog dengan cepat dan menggunakan
pg_get_functiondef()
fungsi berikut ini contoh kueri:sumber
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
Anda juga bisa mendapatkan melalui phpPgAdmin jika Anda mengonfigurasinya di sistem Anda,
Langkah 1: Pilih database Anda
Langkah 2: Klik tombol temukan
Langkah 3: Ubah opsi pencarian ke fungsi lalu klik Temukan.
Anda akan mendapatkan daftar fungsi yang didefinisikan. Anda juga dapat mencari fungsi berdasarkan nama, semoga jawaban ini membantu orang lain.
sumber
Untuk melihat kode lengkap (query) yang ditulis dalam prosedur / fungsi yang tersimpan, Gunakan Perintah di bawah ini:
untuk nama fungsi dan nama prosedur jangan tambahkan awalan 'dbo.' atau 'sys.'.
jangan tambahkan tanda kurung di akhir prosedur atau nama fungsi dan juga jangan berikan parameter.
gunakan kata kunci sp_helptext dan kemudian teruskan nama prosedur / fungsi.
gunakan perintah di bawah ini untuk melihat kode lengkap yang ditulis untuk Prosedur:
gunakan perintah di bawah ini untuk melihat kode lengkap yang ditulis untuk fungsi:
sumber
sp_helptext
di postgresql.Biasanya Anda akan menggunakan aplikasi pengelola DB seperti pgAdmin , telusuri objek yang Anda minati, dan klik kanan untuk "script as create" atau serupa.
Apakah Anda mencoba melakukan ini ... tanpa aplikasi manajemen?
sumber