Klauzula returning

Klauzula RETURNING

W PL/SQL istnieje opcjonalna klauzula RETURNING INTO pozwalająca na zapisanie do zmiennej wartości pochodzących z rekordu wstawianego przez polecenie INSERT lub modyfikowanego przez UPDATE. Taka możliwość staje się bardzo użyteczna, gdy zechcemy uzyskać ID pochodzącego z sekwencji właśnie wstawionego rekordu, lub generowanej dynamicznie innej wartości (np. jeśli wstawiamy sysdate).

 

W powyższym przykładzie wstawiłem nowy wiersz do tabeli jobs, a przy pomocy klauzuli RETURNING INTO uzyskałem ID wstawionego wiersza. Wartość ID została przypisana do zmiennej ID której typ został zdeklarowany na podstawie typu kolumny job_id z tabeli jobs. Taka możliwość nabiera ogromnego znaczenia, jeśli wartość wstawiana do kolumny klucza głównego pochodzi z sekwencji, a mamy zamiar operować na właśnie wstawionych danych. Oczywiście w takim przypadku można by również zastosować odwołanie do currval wykorzystywanej sekwencji, jednak nie mamy żadnej gwarancji, że w międzyczasie ktoś inny nie skorzystał z tej samej sekwencji i nie zmienił jej wartości.

Ten artykuł jest elementem poniższych kursów: