Creative Saplings

PL / SQL – Kursory

30 stycznia, 2021
No Comments
Reklamy

W tym rozdziale omówimy kursory w PL / SQL. Oracle tworzy obszar pamięci, zwany obszarem kontekstu, do przetwarzania instrukcji SQL, który zawiera wszystkie informacje potrzebne do przetwarzania instrukcji; na przykład liczba przetworzonych wierszy itp.

Kursor jest wskaźnikiem do tego obszaru kontekstu. PL / SQL kontroluje obszar kontekstu za pomocą kursora. Kursor przechowuje wiersze (jeden lub więcej) zwróconych przez instrukcję SQL. Zbiór wierszy, które przechowuje kursor, nazywany jest zestawem aktywnym.

Kursor można nazwać tak, aby można było się do niego odwoływać w programie do pobierania i przetwarzania wierszy zwracanych przez instrukcję SQL, jeden na czas. Istnieją dwa typy kursorów –

  • Niejawne kursory
  • Jawne kursory

Niejawne kursory

Niejawne kursory są automatycznie tworzone przez Oracle za każdym razem, gdy wykonywana jest instrukcja SQL, gdy nie ma dla niej wyraźnego kursora. Programiści nie mogą kontrolować niejawnych kursorów i zawartych w nich informacji.

Za każdym razem, gdy jest wydawana instrukcja DML (INSERT, UPDATE i DELETE), jest z nią powiązany niejawny kursor. W przypadku operacji INSERT kursor przechowuje dane, które mają zostać wstawione. W przypadku operacji UPDATE i DELETE kursor identyfikuje wiersze, których to dotyczy.

W języku PL / SQL można odwołać się do ostatniego niejawnego kursora jako kursora SQL, który zawsze ma atrybuty, takie jak% FOUND ,% ISOPEN,% NOTFOUND i% ROWCOUNT. Kursor SQL ma dodatkowe atrybuty,% BULK_ROWCOUNT i% BULK_EXCEPTIONS, przeznaczone do użycia z instrukcją FORALL. Poniższa tabela zawiera opis najczęściej używanych atrybutów –

S.No Atrybut & Opis
1

% FOUND

Zwraca wartość TRUE, jeśli instrukcja INSERT, UPDATE lub DELETE wpłynęła na jeden lub więcej wierszy lub instrukcja SELECT INTO zwróciła jeden lub więcej wierszy. W przeciwnym razie zwraca FALSE.

2

% NOTFOUND

Logiczne przeciwieństwo% FOUND. Zwraca wartość TRUE, jeśli instrukcja INSERT, UPDATE lub DELETE nie wpłynęła na żadne wiersze lub instrukcja SELECT INTO nie zwróciła żadnych wierszy. W przeciwnym razie zwraca FALSE.

3

% ISOPEN

Zawsze zwraca FALSE dla niejawnych kursorów, ponieważ Oracle automatycznie zamyka kursor SQL po wykonaniu powiązanej z nim instrukcji SQL.

4

% ROWCOUNT

Zwraca liczbę wierszy objętych instrukcją INSERT, UPDATE lub DELETE lub zwróconych przez instrukcję SELECT INTO.

Każdy atrybut kursora SQL będzie dostępny jako sql% nazwa_atrybutu, jak pokazano poniżej w przykładzie.

Przykład

Będziemy korzystać z tabeli CUSTOMERS, którą stworzyliśmy i używaliśmy w poprzednich rozdziałach.

Poniższy program zaktualizuje tabelę i zwiększy pensję każdego klienta o 500 oraz użyje SQL% Atrybut ROWCOUNT określający liczbę wierszy, na które ma to wpływ –

Kiedy powyższy kod jest wykonywany po znaku zachęty SQL, daje następujący wynik –

6 customers selected PL/SQL procedure successfully completed. 

Jeśli sprawdzisz rekordy w tabeli klientów, zobaczysz, że wiersze zostały zaktualizowane –

Jawne kursory

Jawne kursory to kursory zdefiniowane przez programistę w celu uzyskania większej kontroli nad obszar kontekstu. W sekcji deklaracji bloku PL / SQL należy zdefiniować wyraźny kursor. Jest tworzony w instrukcji SELECT, która zwraca więcej niż jeden wiersz.

Składnia do tworzenia jawnego kursora to –

CURSOR cursor_name IS select_statement; 

Praca z wyraźnym kursorem obejmuje następujące kroki –

  • Deklarowanie kursora do inicjalizacji pamięci
  • Otwieranie kursora w celu przydzielenia pamięci
  • Pobieranie kursora do pobierania danych
  • Zamknięcie kursora w celu zwolnienia przydzielonej pamięci

Deklaracja kursora

Zadeklarowanie kursora definiuje kursor z nazwą i powiązana instrukcja SELECT. Na przykład –

CURSOR c_customers IS SELECT id, name, address FROM customers; 

Otwarcie kursora

Otwarcie kursora alokuje pamięć dla kursora i przygotowuje go do pobrania zwróconych wierszy przez instrukcję SQL do niego. Na przykład otworzymy powyższy kursor w następujący sposób –

OPEN c_customers; 

Pobieranie kursora

Pobieranie kursora obejmuje dostęp do jednego wiersza w czas. Na przykład pobierzemy wiersze z otwartego powyżej kursora w następujący sposób –

FETCH c_customers INTO c_id, c_name, c_addr; 

Zamknięcie kursora

Zamknięcie kursora oznacza zwolnienie przydzielonej pamięci.Na przykład zamkniemy powyższy kursor w następujący sposób –

CLOSE c_customers;

Przykład

Poniżej znajduje się kompletny przykład ilustrujący koncepcje jawnych kursorów & minua;

Gdy powyższy kod jest wykonywany po znaku zachęty SQL, daje następujący wynik –

1 Ramesh Ahmedabad 2 Khilan Delhi 3 kaushik Kota 4 Chaitali Mumbai 5 Hardik Bhopal 6 Komal MP PL/SQL procedure successfully completed. 
Reklamy

Articles
Previous Post

Cykl Sustanon 250

Next Post

Ile danych wykorzystuje Netflix - jak nimi sterować i zużywać mniej

Dodaj komentarz Anuluj pisanie odpowiedzi

Najnowsze wpisy

  • Najlepsze szkoły fotograficzne na świecie, 2020
  • Suwerenni obywatele zabierają na drogi swoją antyrządową filozofię
  • Przewodnik po kosztach naprawy sztukaterii
  • Muckrakers (Polski)
  • Precyzyjna onkologia

Archiwa

  • Luty 2021
  • Styczeń 2021
  • Grudzień 2020
  • Listopad 2020
  • Październik 2020
  • Wrzesień 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.