zmień kontrast czcionka: A A A
rss angielski
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 ]