Różnica Między Jawnym Kursorem A Niejawnym Kursorem

Różnica Między Jawnym Kursorem A Niejawnym Kursorem
Różnica Między Jawnym Kursorem A Niejawnym Kursorem
Anonim

Jawny kursor a niejawny kursor

Jeśli chodzi o bazy danych, kursor jest strukturą kontrolną, która umożliwia przechodzenie po rekordach w bazie danych. Kursor zapewnia mechanizm przypisywania nazwy do instrukcji SQL select, a następnie może być używany do manipulowania informacjami zawartymi w tej instrukcji SQL. Niejawne kursory są tworzone automatycznie i używane za każdym razem, gdy instrukcja Select jest wydawana w PL / SQL, gdy nie ma jawnie zdefiniowanego kursora. Jak sugeruje nazwa, jawne kursory są definiowane przez programistę. W PL / SQL jawny kursor jest w rzeczywistości nazwanym zapytaniem zdefiniowanym za pomocą słowa kluczowego kursora.

Co to jest kursor niejawny?

Niejawne kursory są tworzone automatycznie i używane przez Oracle za każdym razem, gdy jest wydawana instrukcja select. Jeśli używany jest niejawny kursor, system zarządzania bazą danych (DBMS) automatycznie wykona operacje otwierania, pobierania i zamykania. Niejawnych kursorów należy używać tylko z instrukcjami SQL, które zwracają pojedynczy wiersz. Jeśli instrukcja SQL zwraca więcej niż jeden wiersz, użycie niejawnego kursora spowoduje błąd. Niejawny kursor jest automatycznie kojarzony z każdą instrukcją języka manipulacji danymi (DML), a mianowicie instrukcją INSERT, UPDATE i DELETE. Ponadto do przetwarzania instrukcji SELECT INTO używany jest niejawny kursor. Podczas pobierania danych przy użyciu niejawnych kursorów może wystąpić wyjątek NO_DATA_FOUND, gdy instrukcja SQL nie zwraca żadnych danych. Ponadto,niejawne kursory mogą zgłaszać wyjątki TOO_MANY_ROWS, gdy instrukcja SQL zwraca więcej niż jeden wiersz.

Co to jest jawny kursor?

Jak wspomniano wcześniej, kursory jawne to zapytania zdefiniowane przy użyciu nazwy. Kursor jawny można traktować jako wskaźnik do zestawu rekordów, a wskaźnik można przesuwać do przodu w ramach zestawu rekordów. Jawne kursory zapewniają użytkownikowi pełną kontrolę nad otwieraniem, zamykaniem i pobieraniem danych. Ponadto można pobrać wiele wierszy za pomocą jawnego kursora. Jawne kursory mogą również przyjmować parametry, tak jak każda funkcja lub procedura, dzięki czemu zmienne w kursorze mogą być zmieniane za każdym razem, gdy są wykonywane. Ponadto wyraźne kursory pozwalają na pobranie całego wiersza do zmiennej rekordu PL / SQL. Korzystając z jawnego kursora, najpierw należy go zadeklarować przy użyciu nazwy. Dostęp do atrybutów kursora można uzyskać za pomocą nazwy nadanej kursorowi. Po zadeklarowaniu należy najpierw otworzyć kursor. Następnie można rozpocząć pobieranie. Jeśli trzeba pobrać wiele wierszy, operację pobierania należy wykonać w pętli. Na koniec kursor musi zostać zamknięty.

Różnica między jawnym kursorem a niejawnym kursorem

Główna różnica między kursorem niejawnym a kursorem jawnym polega na tym, że kursor jawny należy zdefiniować jawnie, podając nazwę, podczas gdy kursory niejawne są tworzone automatycznie po wydaniu instrukcji select. Ponadto można pobrać wiele wierszy za pomocą jawnych kursorów, podczas gdy niejawne kursory mogą pobierać tylko jeden wiersz. Również wyjątki NO_DATA_FOUND i TOO_MANY_ROWS nie są zgłaszane przy użyciu jawnych kursorów, w przeciwieństwie do niejawnych kursorów. Zasadniczo niejawne kursory są bardziej podatne na błędy danych i zapewniają mniejszą kontrolę programową niż jawne kursory. Ponadto kursory niejawne są uważane za mniej wydajne niż kursory jawne.

Zalecane: