Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wprowadzenie do kursorów referencyjnych PL/SQL w bazie danych Oracle

Co to są kursory referencyjne PL/SQL w bazie danych Oracle?

Jeśli chodzi o wydajność, kursory referencyjne PL/SQL w Oracle zawsze okazywały się lepsze od kursorów statycznych. Ze względu na zdolność pojedynczego kursora ref do skojarzenia z wieloma instrukcjami SELECT w jednym bloku PL/SQL. Ponadto zmniejsza to potrzebę pisania oddzielnych wyraźnych kursorów. Co więcej, czyni je wysoce wydajną, elastyczną i solidną funkcją języka PL/SQL. Przyjrzyjmy się zatem kursorom referencji w PL/SQL i dowiedzmy się o nich więcej.

Co to są kursory referencyjne PL/SQL w bazie danych Oracle?

Ref Cursor to akronim odniesienia do kursora. Jest to typ danych PL/SQL, za pomocą którego można zadeklarować specjalny typ zmiennej o nazwie Cursor Variable.

Czy zmienna kursora i kursor odniesienia są ze sobą połączone?

To bardzo dobre pytanie. Widziałem w wielu książkach, że oba te nazwy są używane zamiennie. Jednak oba są dwoma oddzielnymi, ale współzależnymi tematami.

Z jednej strony zmienna kursora jest jak wskaźnik, który odnosi się do innego obszaru kontekstowego w SGA. Podczas gdy Ref Cursor to typ danych, który przechowuje wartość kursora.

W takim razie, w jaki sposób zmienna kursora i kursory odniesienia są od siebie zależne?

Jak wspomniano powyżej, zmienne kursora są deklarowane za pomocą kursorów odniesienia. W związku z tym możemy powiedzieć, że w Oracle Database zmienne kursora istnieją w formie Ref Cursors.

Definicja zmiennej kursora
Wykorzystując wszystkie powyższe informacje możemy zdefiniować zmienną kursora jako:Zmienna typu kursora odniesienia nazywana jest zmienną kursora.

Jaka jest składnia deklarowania kursora referencji?

Oto uogólniona składnia deklarowania kursorów Ref w bazie danych Oracle:

DECLARE
 TYPE [cursor_variable_name] IS REF CURSOR [RETURN (return_type)];

Składnia może być modyfikowana i używana w zależności od typu kursorów referencji, których chcesz użyć w swojej aplikacji. Powiedziawszy to, zobaczmy typy kursorów referencji dostępnych w bazie danych Oracle.

Ile mamy typów kursorów referencyjnych PL/SQL?

W PL/SQL istnieją dwa typy kursorów referencji. Są to:

  1. Silny kursor referencji i
  2. Słaby kursor referencji

Co to jest silny kursor odniesienia w bazie danych Oracle?

Każdy Kursor Odniesienia, który ma ustalony typ zwrotu, nazywany jest Kursorem Silnego Odniesienia.

Co więcej, takie kursory ref mogą być używane tylko z niektórymi instrukcjami SELECT. Ponadto wynik typu danych instrukcji SELECT powinien odpowiadać temu, który został ustalony podczas deklaracji silnego kursora.

Składnia silnych kursorów referencji w PL/SQL

Oto składnia silnego kursora ref.

DECLARE
	TYPE cursor_variable_name IS REF CURSOR 
RETURN (return type);

Klauzula zwrotu odgrywa bardzo istotną rolę w deklarowaniu kursora odwołania. Ogranicza jego zakres. I sprawia, że ​​Twój Kursor Odniesienia jest ograniczony tylko do tych instrukcji SELECT, które zwracają wynik, którego typ danych pasuje do określonego w klauzuli RETURN podczas deklarowania go.

Również zwracany typ kursora odwołania musi być zawsze typu danych rekordu. Może to być struktura rekordu tabeli lub struktura rekordu zdefiniowana przez użytkownika.

Co to jest słaby kursor referencji w bazie danych Oracle?

W przeciwieństwie do silnych kursorów ref, słabe kursory ref to takie, które nie mają żadnego typu powrotu. Innymi słowy, te kursory ref, które nie mają stałego typu powrotu, nazywane są słabymi kursorami ref.

Ponieważ słabe kursory referencji nie mają żadnego ustalonego typu zwracanego, dlatego są otwarte dla wszystkich instrukcji SELECT. A to czyni je jednym z najczęściej używanych kursorów referencji w PL/SQL.

Składnia słabych kursorów referencji w PL/SQL

DECLARE
	TYPE ref_cursor_name IS REF CURSOR;

Z wyjątkiem brakującej klauzuli return składnia jest bardzo podobna do silnych kursorów ref.

Kanadyjskie badania sugerują, że ludzie są biologicznie przystosowani do lenistwa. Poza tym, jaki jest sens posiadania komputera z tymi wszystkimi mocami obliczeniowymi, kiedy musimy wykonać całą ciężką pracę polegającą na zadeklarowaniu typu wskaźnika Ref, a następnie utworzeniu zmiennej.

Cóż, moi drodzy przyjaciele, jeśli jesteś jednym z tych, którzy chcą powstrzymać się od ciężkiej pracy związanej z tworzeniem zmiennej kursora, to Oracle PL/SQL ma dla ciebie opcję. Ta opcja będzie służyć jako niejawnie utworzona zmienna kursora. Zobaczmy więc, co to jest.

Sys_RefCursor

Kursor Sys Ref to wbudowana w Oracle zmienna kursora. Deklaruje słaby kursor ref i to również bez deklarowania typu wskaźnika ref. Przeważnie jest używany jako ogólny kursor, który może być przekazany jako argument do zapisanego podprogramu.

To tyle w tym samouczku dotyczącym wprowadzenia do kursorów referencyjnych PL/SQL w bazie danych Oracle. Bądź na bieżąco, ponieważ w nadchodzących samouczkach zrobimy praktyczną demonstrację kursora odwołania w Oracle PL/SQL.

Możesz również zapoznać się z samouczkiem wideo na ten sam temat na moim kanale YouTube, aby uzyskać więcej informacji.

Dzięki, że wpadłeś. Miłego dnia!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można wstawić Unicode za pomocą cx-Oracle

  2. Czy istnieje najlepszy sposób na uniknięcie wykonywania procesu więcej niż raz w Oracle?

  3. jak używać xmltable w Oracle?

  4. PL/SQL:jak monitować użytkownika o wprowadzenie danych w procedurze?

  5. Określanie lokalizacji odpowiedniego pliku tnsnames.ora