Hvad er PL/SQL Ref-markører i Oracle-databasen?
Når det kommer til ydeevne, har PL/SQL Ref Cursors i Oracle altid bevist, at de er statiske markører overlegne. På grund af en enkelt ref-markørs evne til at blive forbundet med flere SELECT-sætninger i en enkelt PL/SQL-blok. Derudover reducerer dette behovet for at skrive separate eksplicitte markører. Desuden gør det dem til en yderst effektiv, fleksibel og robust funktion af PL/SQL sprog. Så lad os udforske Ref Cursors i PL/SQL og lære mere om det.
Hvad er PL/SQL Ref-markører i Oracle-databasen?
Ref Cursor er et akronym af Reference to a Cursor. Det er en PL/SQL-datatype, som du kan bruge til at erklære en speciel type variabel kaldet Cursor Variable.
Er Cursor Variable og Ref Cursor forbundet med hinanden?
Det er et meget godt spørgsmål. Jeg så i mange bøger, at begge disse navne bruges i flæng. Men begge af dem er to separate, men indbyrdes afhængige emner.
På den ene side er markørvariablen som en markør, der refererer til forskellige kontekstområder i SGA. Hvorimod Ref Cursor er en datatype, der har en cursorværdi.
Hvordan er Cursor Variable og Ref Cursorer indbyrdes afhængige af hinanden?
Som nævnt ovenfor erklæres markørvariabler ved hjælp af referencemarkører. Derfor kan vi sige, at der i Oracle Database findes markørvariabler i form af Ref Cursorer.
Definition af markørvariabel
Ved at bruge al ovenstående information kan vi definere markørvariable som:En variabel af Ref Cursor Type kaldes Cursor Variable.
Hvad er syntaksen for Declaring Ref Cursor?
Her er den generaliserede syntaks til at deklarere Ref-markører i Oracle Database:
DECLARE TYPE [cursor_variable_name] IS REF CURSOR [RETURN (return_type)];
Syntaks kan ændres og bruges afhængigt af hvilken type Ref Cursorer du ønsker at bruge i din applikation. Når det er sagt, lad os se hvilke typer Ref Cursorer, der er tilgængelige i Oracle Database.
Hvor mange typer PL/SQL ref markører har vi?
Der er to typer Ref Cursorer i PL/SQL. Disse er:
- Stærk referencemarkør og
- Svag referencemarkør
Hvad er Strong Ref Cursor i Oracle Database?
Enhver Ref-markør, som har en fast returtype, kaldes en Strong Ref-markør.
Desuden kan sådanne ref-markører kun bruges med nogle SELECT-sætninger. Derudover skal resultatet af SELECT-sætningens datatype matche den, der blev rettet under den stærke markørs erklæring.
Syntaks af stærke referencemarkører i PL/SQL
Her er den stærke ref-markørs syntaks.
DECLARE TYPE cursor_variable_name IS REF CURSOR RETURN (return type);
Return-klausul spiller en meget vigtig rolle i at erklære en Ref Cursor. Det begrænser dens rækkevidde. Og gør din Ref Cursor begrænset til kun de SELECT-sætninger, der returnerer resultatet, hvis datatype matcher den, du specificerede i RETURN-sætningen, mens du erklærede den.
Returtypen for en Ref Cursor skal også altid være af Record Datatype. Det kan enten være poststruktur af en tabel eller brugerdefineret poststruktur.
Hvad er en svag referencemarkør i Oracle-databasen?
I modsætning til stærke ref-markører er svage ref-markører dem, der ikke har nogen returtype. Med andre ord kaldes de ref-markører, som ikke har en fast returtype, svage ref-markører.
Da svage Ref-markører ikke har nogen fast returtype, er de åbne for alle SELECT-sætninger. Og dette gør dem til en af de mest brugte Ref Cursorer i PL/SQL.
Syntaks af svage ref-markører i PL/SQL
DECLARE TYPE ref_cursor_name IS REF CURSOR;
Bortset fra den manglende return-klausul ligner syntaksen stort set de stærke ref-markører.
En canadisk undersøgelse tyder på, at mennesker er biologisk forsynet med at være dovne. Og hvad er meningen med at have en computer med alle disse bearbejdningsevner, når vi skal gøre alt det hårde arbejde med at erklære en Ref-pointertype og derefter oprette en variabel.
Nå, mine kære venner, hvis du er en af dem, der ønsker at afstå fra at gøre alt det hårde arbejde med at skabe en markørvariabel, så har Oracle PL/SQL en mulighed for dig. Denne mulighed vil tjene som en implicit oprettet markørvariabel for dig. Så lad os se, hvad det er.
Sys_RefCursor
Sys Ref cursor er en Oracle indbygget cursor variabel. Den erklærer en svag ref-markør og det også uden at angive ref-pointertypen. For det meste bruges den som en generisk markør, der kan sendes som et argument til et lagret underprogram.
Det var det for denne tutorial om introduktionen til PL/SQL Ref Cursors i Oracle Database. Hold dig opdateret, da vi i de kommende tutorials vil lave en praktisk demonstration af Ref Cursor i Oracle PL/SQL.
Du kan også henvise til videovejledningen om det samme emne på min YouTube-kanal for flere detaljer.
Tak fordi du kiggede forbi. Hav en god dag!