jesteś w >> pgSQL >>funkcje
funkcje
Język PL/pgsql umożliwia definiowanie funkcji, które można wykorzystać wewnątrz bazy PostgreSQL. Aby zdefiniować własną funkcję należy użyć polecenia CREATE FUNCTION.Ogólna postać definicji funkcji
CREATE FUNCTION nazwa_funkcji ( [typ_arg1 [,typ_arg2 [,...]]] )
RETURNS typ_wyniku
AS 'BEGIN wnętrze_funkcji
END;'
LANGUAGE 'nazwa_języka'
Przykład : Stwórz funkcję, która dla przyjmowanego id pracownika z tabeli `pracownicy` będzie zwracała jego nazwisko
CREATE FUNCTION nazwisko_pracownika ( int4 )
RETURNS text
AS' BEGIN
DECLARE n;
SELECT `nazwisko` FROM `pracownicy` WHERE `id`=$1;
RETURN n;
END;'
LANGUAGE 'nazwa_języka'
Kiedy funkcja jest wywoływana po raz pierwszy, definicja funkcji jest kompilowana przez program obsługi do postaci wykonywalnej, a następnie wykonywana. Dopiero użycie funkcji pozwala na wykrycie jej ewentualnych błędów.
Istnieje również możliwość przeciążania nazw funkcji, ponieważ PostgreSQL uznaje funkcje za różne jeśli różnią się liczbą argumentów i/lub typem argumentów.
Wewnątrz funkcji PL/pgSQL można deklarować lokalne zmienne. Każda zmienna musi mieć określony typ, który może być jednym z wbudowanych typów PostgreSQL typem użytkownika lub typem odpowiadającym wierszowi w tabeli. Deklaracje zmiennych dla funkcji zapisuje się w sekcji DECLARE definicji funkcji lub w bloku wewnątrz funkcji. Zmienne zadeklarowane w bloku są widoczne tylko wewnątrz niego oraz w innych blokach, które się w nim znajdują. Zmienna zadeklarowana w bloku wewnętrznym, posiadająca tę samą nazwę jak zmienna na zewnątrz bloku, przesłania zmienną zewnętrzną.
[ wróć na górę strony ]