Wprowadzenie do kursorów w języku PL / SQL

PL / SQL jest jednym z najczęściej używanych języków programowania, jeśli chodzi o programowanie baz danych. Niektóre ważne koncepcje języka PL / SQL muszą być zrozumiałe dla programisty PL / SQL, aby poprawnie z nich korzystać. Kursor jest jednym z nich. W programie PL / SQL instrukcje SQL muszą być wykonywane na końcu. Kursor jest jak wskaźnik, który służy do wskazywania obszaru kontekstu, utworzonego przez Oracle w celu wykonania instrukcji SQL. Kursor przechowuje wszystkie wiersze zwrócone po przetworzeniu instrukcji SQL. Zestaw wiersza, który jest w posiadaniu Kursora, jest określany jako Zestaw aktywny. Kursor może być również nazwany, aby mógł być używany przez programistę w programie. W tym temacie poznamy Kursory w PL / SQL.

Rodzaje kursorów

Istnieją 2 rodzaje Kursorów używanych w programowaniu PL / SQL:

1. Domniemane kursory

Jak wskazuje nazwa, niejawne kursory to te kursory, które są automatycznie tworzone przez Oracle podczas wykonywania instrukcji DML, takich jak INSERT, DELETE, UPDATE. Gdy programista nie utworzy żadnego kursora, sam Oracle tworzy go, aby przechować wiersze, na które wpływ mają instrukcje DML. Kursory te nie mogą być nazwane przez programistę, a zatem nie mogą być wywoływane i używane w innym miejscu kodu. Chociaż Oracle zapewnia pewne atrybuty do wykonywania niektórych operacji na nim

% ZNALEZIONO, % NOTFOUND, % ROWCOUNT, % ISOPEN.

S.No.AtrybutOpis
1.%ZNALEZIONYZwraca wartość True, jeśli instrukcje DML, takie jak INSERT,

DELETE, UPDATE wpływają na jeden lub więcej wierszy lub instrukcja SELECT zwraca jeden lub więcej wierszy. W przeciwnym razie zwraca False

2)%NIE ZNALEZIONOJest przeciwieństwem atrybutu% FOUND. Zwraca wartość True, jeśli instrukcja DML nie wpływa na żaden wiersz lub instrukcja SELECT nie zwraca wyników. W przeciwnym razie zwraca False.
3)%JEST OTWARTEW przypadku niejawnych kursorów zawsze zwraca wartość False, ponieważ Oracle zamyka kursor tuż po wykonaniu instrukcji SQL.
4%LICZBA WIERSZYZwraca liczbę wierszy. Czyli liczba wierszy, na które wpływa wspomniany DML
instrukcje programisty w kodzie PL / SQL, takie jak INSERT, DELETE i UPDATE, lub liczba wierszy zwracanych przez instrukcję SELECT INTO.
Przykład

Scenariusz: Aby zaktualizować oceny wszystkich uczniów w tabeli „student” w języku angielskim Przedmiot o kolumnie „przedmiot” o 10.

DECLARE
affected_rows number(4);
BEGIN
UPDATE students SET marks = marks+10 where subject = 'English';
IF​ sql%NOTFOUND THEN dbms_output.put_line ('No records of English subject are updated');
ELSIF sql%FOUND THEN​ affected rows: = affected rows%rowcount
dbms_output.put_line('Congrats ..Records Updated' || affected_rows);
END IF;
END;
/

2. Jawne kursory

Jawne kursory to kursory zdefiniowane przez programistów w celu uzyskania większej kontroli nad obszarem kontekstu (gdzie przechowywane są wyniki zapytań SQL). Kursory te należy najpierw zdefiniować w bloku deklaracji programu PL / SQL. Jest tworzony dla instrukcji SQL, które zwracają więcej niż jeden wiersz po ich przetworzeniu. Istnieje specjalna procedura, której należy przestrzegać, aby użyć jawnego kursora. Kroki korzystania z Jawnego kursora są wymienione poniżej:

1. Zadeklaruj kursor: służy do nadania nazwy obszarowi kontekstowemu / kursorowi wraz z instrukcją select, którą należy wykonać.

Składnia

CURSOR cursor_name IS SELECT statement;

2. Otwórz kursor: otwarcie kursora, przydzielenie do niego pamięci i udostępnienie jej w celu pobrania rekordów zwróconych przez instrukcję SQL.

Składnia

OPEN cursor_name;

3. Pobierz kursor: W tym procesie dostęp do jednego wiersza jest uzyskiwany jednocześnie. Wykonywana jest instrukcja SELECT, a pobrane wiersze są przechowywane w obszarze kontekstu. Pobiera rekordy i przypisuje je do zdefiniowanej zmiennej.

Składnia

FETCH cursor_name INTO variable;

4. Zamknij kursor: Ten krok służy do zamknięcia kursora otwartego powyżej w celu zwolnienia pamięci po pomyślnym pobraniu wszystkich zapisanych wierszy.

Składnia

CLOSE cursor_name;

Przykład

Scenariusz: pobierz nazwisko, adres i ogólny odsetek uczniów w tabeli

„uczeń” o nazwie „kolumny”, „adresie” i „odsetku”

DECLARE
stud_name student.name%type; stud_address student.address%type;
stud_percentage student.percentage%type;
CURSOR stud IS SELECT name, address, percentage FROM student; BEGIN
Open stud;
LOOP
FETCH stud into stud_name, stud_address, stud_percentage;
EXIT when stud%NOTFOUND;
dbms_ouput.put_line(stud_name || ' ' || stud_address || ' ' || stud_percentage);
END LOOP;
CLOSE stud;
END
/

Akcje kursora

W przeciwieństwie do SQL, który działa na wszystkich wierszach w zestawie wyników na raz, kursor jest używany głównie w scenariuszach, w których programista chce przetwarzać i pobierać dane z jednego wiersza na raz.

Poniżej wymieniono niektóre akcje kursora:

  1. Zadeklaruj kursor: Przed użyciem należy zadeklarować kursor. Kursor jest deklarowany poprzez zdefiniowanie instrukcji SQL, która musi zostać przetworzona.
  2. Otwórz kursor: Po deklaracji kursor jest otwierany i wypełniany przez dane zwracane przez przetwarzanie instrukcji SQL.
  3. Pobierz kursor: po otwarciu kursora wiersze wyjściowe muszą być pobierane jeden po drugim, aby w razie potrzeby wykonać dowolną manipulację.
  4. Zamknij kursor: po wszystkich manipulacjach danymi. Utworzony kursor musi zostać zamknięty
  5. Cofnij przydzielenie: ten krok obejmuje usunięcie kursora i uwolnienie wszystkich posiadanych przez niego zasobów.

Znaczenie kursora w PL / SQL

Wskazywanie lokalizacji pamięci i wykonywanie odpowiednich czynności jest jednym z ważnych zadań w dowolnym języku programowania. W PL / SQL odbywa się to za pomocą Kursorów. Kursory odgrywają kluczową rolę w wykonywaniu różnych zadań, nadając nazwę obszarowi pamięci (obszarowi kontekstu), w którym zapisywane są wyniki zapytań SQL. Możemy uzyskać dostęp do rekordów jeden po drugim i wykonać dowolne manipulacje w nim, jeśli jest to wymagane, lub odpowiednio wyświetlić je na konsoli. Jawne kursory są bardziej wydajne, dają większą kontrolę programową i są mniej podatne na błędy danych, dzięki czemu są bardzo przydatne w programowaniu PL / SQL niż domniemane.

Wniosek

Programowanie baz danych jest obecnie bardzo popularne, a PL / SQL jest jednym z języków, który powinien być w nim bardzo dobrze używany. Kursory dają programistom większą kontrolę nad dostępem do odzyskanych danych. Aby programista mógł pracować na PL / SQL, ważna jest znajomość zastosowania i znaczenia Cursor do efektywnej pracy.

Polecane artykuły

Jest to przewodnik po kursorach w PL / SQL. W tym miejscu omawiamy typy kursorów używanych w programowaniu PL / SQL za pomocą akcji kursorów oraz znaczenie kursora. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Rodzaje złączeń w SQL
  2. Zapytanie wstawiania SQL
  3. Tabela w SQL
  4. Symbole wieloznaczne w SQL
  5. Top 6 rodzajów połączeń w MySQL z przykładami