Odpowiedzi:
użyj pgAdmin lub użyj pg_proc, aby uzyskać źródło procedur składowanych. pgAdmin robi to samo.
\df+ <function_name>
w psql .
\x
meta-polecenia psql . \x
jest również przydatny do przeglądania wyników zapytań zawierających rekordy z długimi ciągami.
\ef <function_name>
w psql. Daje to całą funkcję z edytowalnym tekstem.
;
<enter>
after, aby wykonać bufor.
ERROR: more than one function named
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
Mówi to obsłudze funkcji, jak wywołać funkcję. Może to być rzeczywisty kod źródłowy funkcji dla języków interpretowanych, symbol łącza, nazwa pliku lub cokolwiek innego, w zależności od konwencji języka implementacji / wywołania
psql
. Zwróć uwagę, że nazwy funkcji wydają się być zmniejszone.
SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. To przynajmniej na str. 9.6. Możesz uzyskać kod numeryczny typu poprzez właściwość proargtypes
, ale musisz połączyć z inną tabelą, aby uzyskać to jako nazwy.
Służy \df
do wyświetlania wszystkich procedur składowanych w Postgres.
Jeśli ktoś się zastanawia, jak szybko przeszukiwać tabele katalogu i korzystać z pg_get_functiondef()
funkcji, oto przykładowe zapytanie:
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%'
Możesz również uzyskać przez phpPgAdmin, jeśli skonfigurowałeś go w swoim systemie,
Krok 1: Wybierz bazę danych
Krok 2: Kliknij przycisk Znajdź
Krok 3: Zmień opcję wyszukiwania na funkcje, a następnie kliknij Znajdź.
Otrzymasz listę zdefiniowanych funkcji. Możesz także wyszukiwać funkcje według nazwy, mam nadzieję, że ta odpowiedź pomoże innym.
Aby zobaczyć pełny kod (zapytanie) zapisane w procedurze / funkcjach składowanych, użyj poniższego polecenia:
sp_helptext procedure/function_name
dla nazwy funkcji i nazwy procedury nie dodawaj przedrostka „dbo”. lub „sys.”.
nie dodawaj nawiasów na końcu procedury lub nazwy funkcji, a także nie przekazuj parametrów.
użyj słowa kluczowego sp_helptext, a następnie podaj nazwę procedury / funkcji.
użyj poniższego polecenia, aby zobaczyć pełny kod napisany dla procedury:
sp_helptext ProcedureName
użyj poniższego polecenia, aby zobaczyć pełny kod napisany dla funkcji:
sp_helptext FunctionName
sp_helptext
w postgresql.
Zwykle używałbyś aplikacji do zarządzania bazami danych , takiej jak pgAdmin , przejdź do obiektu, który Cię interesuje i kliknij prawym przyciskiem myszy, aby przejść do „skryptu podczas tworzenia” lub podobnego.
Czy próbujesz to zrobić ... bez aplikacji do zarządzania?