Jak wyświetlić procedurę / funkcję składowaną?
Powiedzmy, że mam starą funkcję bez oryginalnej definicji - chcę zobaczyć, co robi w pg / psql, ale nie mogę znaleźć sposobu, aby to zrobić.
używając Postgres w wersji 8.4.1
postgresql
stored-procedures
Darren
źródło
źródło
\df+ <function_name>
w psql .źródło
\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.źródło
;
<enter>
after, aby wykonać bufor.ERROR: more than one function named
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
źródło
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.źródło
Jeśli ktoś się zastanawia, jak szybko przeszukiwać tabele katalogu i korzystać z
pg_get_functiondef()
funkcji, oto przykładowe zapytanie:źródło
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.
źródło
Aby zobaczyć pełny kod (zapytanie) zapisane w procedurze / funkcjach składowanych, użyj poniższego polecenia:
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:
użyj poniższego polecenia, aby zobaczyć pełny kod napisany dla funkcji:
źródło
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?
źródło