Yanıtlar:
saklanan yordamlarınızın kaynağını almak için pgAdmin kullanın veya pg_proc kullanın. pgAdmin de aynısını yapar.
\df+ <function_name>
içinde psql'in .
\x
psql meta komutunu kullanabilirsiniz . \x
uzun dizeli kayıtları içeren sorgu sonuçlarını görüntülemek için de kullanışlıdır.
\ef <function_name>
psql olarak. Düzenlenebilir metin ile tüm işlevi verecektir.
;
<enter>
Arabelleği çalıştırmak için sonra yazmayı unutmayın .
ERROR: more than one function named
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
Bu, işlev işleyicisine işlevi nasıl çağıracağını söyler. Bu, yorumlanan diller için işlevin gerçek kaynak kodu, bir bağlantı sembolü, bir dosya adı veya uygulama diline / çağrı kuralına bağlı olarak hemen hemen her şey olabilir.
psql
. İşlev adlarının küçültülmüş göründüğünü unutmayın.
SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. Bu en azından Sf 9.6'da. Türün sayısal kodunu özellik aracılığıyla alabilirsiniz proargtypes
, ancak bunu ad olarak almak için başka bir tabloyla katılmanız gerekir.
\df
Postgres'te tüm saklı yordamları listelemek için kullanın .
Katalog tablolarını nasıl hızlı bir şekilde sorgulayacağını ve pg_get_functiondef()
işlevi nasıl kullanacağını merak eden biri varsa, işte örnek sorgu:
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%'
Sisteminizde yapılandırdıysanız phpPgAdmin ile de alabilirsiniz,
Adım 1: Veritabanınızı seçin
Adım 2: Bul düğmesine tıklayın
Adım 3: Arama seçeneğini işlevlere değiştirin ve ardından Bul'a tıklayın.
Tanımlanmış işlevlerin listesini alacaksınız. İşlevleri isme göre de arayabilirsiniz, bu cevabın başkalarına yardımcı olacağını umabilirsiniz.
Depolanan yordamda / işlevlerde yazılan tam kodu (sorgu) görmek için aşağıdaki Komutu kullanın:
sp_helptext procedure/function_name
işlev adı ve prosedür adı için 'dbo' önekini eklemeyin. veya "sys".
yordamın veya işlev adının sonuna parantez eklemeyin ve parametreleri de iletmeyin.
sp_helptext anahtar sözcüğünü kullanın ve ardından yalnızca prosedür / işlev adını iletin.
Prosedür için yazılmış tam kodu görmek için aşağıdaki komutu kullanın:
sp_helptext ProcedureName
işlev için yazılmış tam kodu görmek için aşağıdaki komutu kullanın:
sp_helptext FunctionName
sp_helptext
Postgresql'de yok .
Normalde , pgAdmin gibi bir DB yöneticisi uygulaması kullanırsınız , ilgilendiğiniz nesneye göz atarsınız ve "oluşturma olarak komut dosyası" veya benzeri yolunuzu sağ tıklatırsınız.
Bunu bir yönetim uygulaması olmadan mı yapmaya çalışıyorsunuz?