piątek, 27 grudnia 2013

Klauzula RETURNING w PL/SQL

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.

1 komentarz:

  1. Top Hotels Near Casinos in Las Vegas, NV - MapYRO
    Casinos in Las Vegas area · Tropicana Las Vegas: MGM Resorts 의정부 출장안마 is 거제 출장마사지 the choice for travelers who want to try 강원도 출장샵 their luck at a casino. 남원 출장마사지 · Treasure Island Casino 양주 출장안마 & Resort: Las

    OdpowiedzUsuń