sql >> Database >  >> RDS >> Oracle

Inleiding tot PL/SQL-referentiecursors in Oracle Database

Wat zijn PL/SQL-referentiecursors in Oracle Database?

Als het op prestaties aankomt, hebben PL/SQL-referentiecursors in Oracle altijd bewezen superieur te zijn aan statische cursors. Vanwege het vermogen van een enkele ref-cursor om geassocieerd te worden met meerdere SELECT-instructies in een enkel PL/SQL-blok. Bovendien vermindert dit de noodzaak voor het schrijven van afzonderlijke expliciete cursors. Bovendien maakt het ze een zeer efficiënte, flexibele en robuuste functie van PL/SQL-taal. Dus laten we Ref Cursors in PL/SQL verkennen en er meer over leren.

Wat zijn PL/SQL-referentiecursors in Oracle Database?

Ref Cursor is een acroniem van Reference to a Cursor. Het is een PL/SQL-gegevenstype waarmee u een speciaal type variabele kunt declareren, genaamd Cursorvariabele.

Zijn Cursor Variabele en Ref Cursor met elkaar verbonden?

Dat is een heel goede vraag. Ik zag in veel boeken dat beide namen door elkaar worden gebruikt. Beide zijn echter twee afzonderlijke, maar onderling afhankelijke onderwerpen.

Aan de ene kant is de cursorvariabele als een aanwijzer die verwijst naar een ander contextgebied in SGA. Terwijl Ref Cursor een datatype is dat een cursorwaarde bevat.

Hoe zijn Cursorvariabele en Ref Cursors dan onderling afhankelijk van elkaar?

Zoals hierboven vermeld, worden Cursorvariabelen gedeclareerd met behulp van Ref Cursors. Bijgevolg kunnen we zeggen dat in Oracle Database cursorvariabelen bestaan ​​in de vorm van Ref Cursors.

Definitie van cursorvariabele
Met behulp van alle bovenstaande informatie kunnen we de cursorvariabele definiëren als:Een variabele van Ref Cursor Type wordt Cursorvariabele genoemd.

Wat is de syntaxis voor het declareren van de ref-cursor?

Hier is de algemene syntaxis voor het declareren van Ref-cursors in Oracle Database:

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

De syntaxis kan worden gewijzigd en gebruikt, afhankelijk van het type referentiecursors dat u in uw toepassing wilt gebruiken. Dat gezegd hebbende, laten we eens kijken naar de typen referentiecursors die beschikbaar zijn in Oracle Database.

Hoeveel soorten PL/SQL-ref-cursors hebben we?

Er zijn twee soorten ref-cursors in PL/SQL. Dit zijn:

  1. Sterke referentiecursor en
  2. Zwakke ref-cursor

Wat is Strong Ref Cursor in Oracle Database?

Elke verwijzingscursor die een vast retourtype heeft, wordt een sterke verwijzingscursor genoemd.

Bovendien kunnen dergelijke ref-cursors alleen worden gebruikt met sommige SELECT-instructies. Bovendien moet het resultaat van het gegevenstype van de SELECT-instructie overeenkomen met het resultaat dat is vastgesteld tijdens de declaratie van de sterke cursor.

Syntaxis van Strong Ref Cursors in PL/SQL

Hier is de syntaxis van de sterke ref-cursor.

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

Retourclausule speelt een zeer vitale rol bij het declareren van een Ref Cursor. Het beperkt de reikwijdte ervan. En maakt uw Ref-cursor beperkt tot alleen die SELECT-instructies die het resultaat retourneren waarvan het datatype overeenkomt met het type dat u hebt opgegeven in de RETURN-component tijdens het declareren.

Ook moet het retourtype van een Ref Cursor altijd van het Record Datatype zijn. Het kan een recordstructuur zijn van een tabel of een door de gebruiker gedefinieerde recordstructuur.

Wat is een zwakke ref-cursor in Oracle Database?

In tegenstelling tot sterke ref-cursors, zijn zwakke ref-cursors die welke geen retourtype hebben. Met andere woorden, die ref-cursors die geen vast retourtype hebben, worden zwakke ref-cursors genoemd.

Omdat zwakke ref-cursors geen vast retourtype hebben, staan ​​ze open voor alle SELECT-instructies. En dit maakt ze een van de meest gebruikte Ref Cursors in PL/SQL.

Syntaxis van zwakke ref-cursors in PL/SQL

DECLARE
	TYPE ref_cursor_name IS REF CURSOR;

Behalve de ontbrekende return-clausule is de syntaxis vrijwel gelijk aan de sterke ref-cursors.

Een Canadese studie suggereert dat mensen biologisch bedraad zijn om lui te zijn. En wat heeft het voor zin om een ​​computer te hebben met al deze verwerkingscapaciteiten als we al het harde werk moeten doen om een ​​Ref-aanwijzertype te declareren en vervolgens een variabele te maken.

Welnu, beste vrienden, als u een van degenen bent die niet al het harde werk van het maken van een cursorvariabele wil doen, dan heeft Oracle PL/SQL een optie voor u. Deze optie zal voor u dienen als een impliciet gemaakte cursorvariabele. Dus laten we eens kijken wat het is.

Sys_RefCursor

Sys Ref-cursor is een in Oracle ingebouwde cursorvariabele. Het declareert een zwakke ref-cursor en dat ook zonder het ref-pointertype te declareren. Meestal wordt het gebruikt als een generieke cursor die als argument kan worden doorgegeven aan een opgeslagen subprogramma.

Dat was het voor deze tutorial over de inleiding tot PL/SQL-referentiecursors in Oracle Database. Blijf op de hoogte, want in de komende tutorials zullen we een praktische demonstratie geven van de Ref Cursor in Oracle PL/SQL.

Je kunt ook de video-tutorial over hetzelfde onderwerp op mijn YouTube-kanaal raadplegen voor meer details.

Bedankt voor het langskomen. Fijne dag!


  1. SQL-BEPERKINGEN

  2. PostgreSQL:export van resulterende gegevens van SQL-query naar Excel/CSV

  3. Tabel kopiëren in MySQL

  4. MySQL - Rijen naar kolommen