Jawaban:
gunakan pgAdmin atau gunakan pg_proc untuk mendapatkan sumber prosedur tersimpan Anda. pgAdmin melakukan hal yang sama.
\df+ <function_name>
di psql .
\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.
;
<enter>
setelah menjalankan buffer.
ERROR: more than one function named
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
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
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 properti proargtypes
, tetapi Anda harus bergabung dengan beberapa tabel lain untuk mendapatkan ini sebagai nama.
Gunakan \df
untuk mendaftar semua prosedur yang disimpan di Postgres.
Jika ada yang bertanya-tanya bagaimana cara membuat kueri tabel katalog dengan cepat dan menggunakan pg_get_functiondef()
fungsi berikut ini contoh kueri:
SELECT n.nspname AS schema
,proname AS fname
,proargnames AS args
,t.typname AS return_type
,d.description
,pg_get_functiondef(p.oid) as definition
-- ,CASE WHEN NOT p.proisagg THEN pg_get_functiondef(p.oid)
-- ELSE 'pg_get_functiondef() can''t be used with aggregate functions'
-- END as definition
FROM pg_proc p
JOIN pg_type t
ON p.prorettype = t.oid
LEFT OUTER
JOIN pg_description d
ON p.oid = d.objoid
LEFT OUTER
JOIN pg_namespace n
ON n.oid = p.pronamespace
WHERE NOT p.proisagg
AND n.nspname~'<$SCHEMA_NAME_PATTERN>'
AND proname~'<$FUNCTION_NAME_PATTERN>'
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.
Untuk melihat kode lengkap (query) yang ditulis dalam prosedur / fungsi yang tersimpan, Gunakan Perintah di bawah ini:
sp_helptext procedure/function_name
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:
sp_helptext ProcedureName
gunakan perintah di bawah ini untuk melihat kode lengkap yang ditulis untuk fungsi:
sp_helptext FunctionName
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?