Vad är PL/SQL Ref Cursors i Oracle Database?
När det kommer till prestanda har PL/SQL Ref Cursors i Oracle alltid visat sig vara överlägsna statiska markörer. På grund av förmågan hos en enda referensmarkör att associeras med flera SELECT-satser i ett enda PL/SQL-block. Dessutom minskar detta behovet av att skriva separata explicita markörer. Dessutom gör det dem till en mycket effektiv, flexibel och robust funktion i PL/SQL-språk. Så låt oss utforska Ref Cursors i PL/SQL och lära oss mer om det.
Vad är PL/SQL Ref Cursorer i Oracle Database?
Ref Cursor är en akronym av Reference to a Cursor. Det är en PL/SQL-datatyp med vilken du kan deklarera en speciell typ av variabel som kallas markörvariabel.
Är Cursor Variable och Ref Cursor anslutna till varandra?
Det är en mycket bra fråga. Jag såg i många böcker att båda dessa namn används omväxlande. Men båda är två separata men ändå beroende av varandra.
Å ena sidan är markörvariabeln som en pekare som hänvisar till olika kontextområden i SGA. Medan Ref Cursor är en datatyp som innehåller ett markörvärde.
Så, hur är markörvariabel och referensmarkör beroende av varandra?
Som nämnts ovan deklareras markörvariabler med hjälp av referensmarkörer. Följaktligen kan vi säga att i Oracle Database finns markörvariabler i form av Ref Cursors.
Definition av markörvariabel
Med all information ovan kan vi definiera markörvariabel som:En variabel av Ref Cursor Type kallas markörvariabel.
Vad är syntaxen för Declaring Ref Cursor?
Här är den generaliserade syntaxen för att deklarera Ref-markörer i Oracle Database:
DECLARE TYPE [cursor_variable_name] IS REF CURSOR [RETURN (return_type)];
Syntax kan modifieras och användas beroende på vilken typ av referensmarkörer du vill använda i din applikation. Med det sagt, låt oss se vilka typer av referensmarkörer som finns tillgängliga i Oracle Database.
Hur många typer av PL/SQL ref-markörer har vi?
Det finns två typer av referensmarkörer i PL/SQL. Dessa är:
- Stark referensmarkör och
- Svag referensmarkör
Vad är Strong Ref Cursor i Oracle Database?
Varje referensmarkör som har en fast returtyp kallas en stark referensmarkör.
Dessutom kan sådana ref-markörer endast användas med vissa SELECT-satser. Dessutom bör resultatet av SELECT-satsens datatyp matcha den som fixades under den starka markörens deklaration.
Syntax för starka referensmarkörer i PL/SQL
Här är den starka ref-markörens syntax.
DECLARE TYPE cursor_variable_name IS REF CURSOR RETURN (return type);
Return-satsen spelar en mycket viktig roll för att deklarera en Ref Cursor. Det begränsar dess räckvidd. Och gör din Ref Cursor begränsad till endast de SELECT-satser som returnerar resultatet vars datatyp matchar den du angav i RETURN-satsen när du deklarerade den.
Även returtypen för en Ref Cursor måste alltid vara av Record Datatype. Det kan antingen vara poststruktur för en tabell eller användardefinierad poststruktur.
Vad är en svag referensmarkör i Oracle Database?
Till skillnad från starka ref-markörer är svaga ref-markörer de som inte har någon returtyp. Med andra ord, de ref-markörer som inte har fast returtyp kallas svaga ref-markörer.
Eftersom svaga referensmarkörer inte har någon fast returtyp så är de öppna för alla SELECT-satser. Och detta gör dem till en av de mest använda referensmarkörerna i PL/SQL.
Syntax för svaga referensmarkörer i PL/SQL
DECLARE TYPE ref_cursor_name IS REF CURSOR;
Förutom den saknade retursatsen är syntaxen ganska lik de starka ref-markörerna.
En kanadensisk studie tyder på att människor är biologiskt kopplade till att vara lata. Dessutom, vad är poängen med att ha en dator med alla dessa processorkrafter när vi måste göra allt det hårda arbetet med att deklarera en Ref-pekare och sedan skapa en variabel.
Tja, mina kära vänner om du är en av dem som vill avstå från att göra allt det hårda arbetet med att skapa en markörvariabel så har Oracle PL/SQL ett alternativ för dig. Det här alternativet kommer att fungera som en implicit skapad markörvariabel för dig. Så låt oss se vad det är.
Sys_RefCursor
Sys Ref cursor är en Oracle inbyggd markörvariabel. Den deklarerar en svag ref-markör och det också utan att deklarera ref-pekartypen. Oftast används den som en generisk markör som kan skickas som ett argument till ett lagrat underprogram.
Det var allt för denna handledning om introduktionen till PL/SQL Ref Cursors i Oracle Database. Håll utkik eftersom vi i de kommande handledningarna kommer att göra en praktisk demonstration av Ref Cursor i Oracle PL/SQL.
Du kan också hänvisa till videohandledningen om samma ämne på min YouTube-kanal för mer information.
Tack för att du hälsade på. Ha en bra dag!