Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Einführung in PL/SQL-Ref-Cursor in der Oracle-Datenbank

Was sind PL/SQL-Ref-Cursor in der Oracle-Datenbank?

Wenn es um Leistung geht, haben sich PL/SQL-Ref-Cursor in Oracle statischen Cursorn immer als überlegen erwiesen. Aufgrund der Fähigkeit eines einzelnen Ref-Cursors, mit mehreren SELECT-Anweisungen in einem einzelnen PL/SQL-Block verknüpft zu werden. Außerdem verringert dies die Notwendigkeit, separate explizite Cursor zu schreiben. Darüber hinaus macht es sie zu einem hocheffizienten, flexiblen und robusten Merkmal der PL/SQL-Sprache. Lassen Sie uns also Ref-Cursor in PL/SQL untersuchen und mehr darüber erfahren.

Was sind PL/SQL-Ref-Cursor in der Oracle-Datenbank?

Ref Cursor ist ein Akronym für Reference to a Cursor. Es ist ein PL/SQL-Datentyp, mit dem Sie einen speziellen Variablentyp namens Cursor-Variable deklarieren können.

Sind Cursorvariable und Ref-Cursor miteinander verbunden?

Das ist eine sehr gute Frage. Ich habe in vielen Büchern gesehen, dass diese beiden Namen synonym verwendet werden. Beide sind jedoch zwei getrennte, aber voneinander abhängige Themen.

Einerseits ist die Cursorvariable wie ein Zeiger, der auf verschiedene Kontextbereiche in SGA verweist. Während Ref Cursor ein Datentyp ist, der einen Cursorwert enthält.

Wie sind dann Cursorvariable und Ref-Cursor voneinander abhängig?

Wie oben erwähnt, werden Cursor-Variablen mit Hilfe von Ref-Cursoren deklariert. Folglich können wir sagen, dass in Oracle Database Cursor-Variablen in Form von Ref-Cursor. existieren

Definition der Cursor-Variablen
Unter Verwendung aller obigen Informationen können wir die Cursor-Variable wie folgt definieren:Eine Variable vom Ref-Cursor-Typ wird als Cursor-Variable bezeichnet.

Wie lautet die Syntax zum Deklarieren des Ref-Cursors?

Hier ist die verallgemeinerte Syntax zum Deklarieren von Ref-Cursoren in der Oracle-Datenbank:

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

Die Syntax kann geändert und verwendet werden, je nachdem, welche Art von Ref-Cursor Sie in Ihrer Anwendung verwenden möchten. Sehen wir uns jedoch die Arten von Ref-Cursor an, die in der Oracle-Datenbank verfügbar sind.

Wie viele Arten von PL/SQL-Ref-Cursorn haben wir?

Es gibt zwei Arten von Ref-Cursor in PL/SQL. Diese sind:

  1. Starker Ref-Cursor und
  2. Schwacher Ref-Cursor

Was ist ein starker Ref-Cursor in der Oracle-Datenbank?

Jeder Ref-Cursor mit einem festen Rückgabetyp wird als starker Ref-Cursor bezeichnet.

Außerdem können solche Ref-Cursor nur mit einigen SELECT-Anweisungen verwendet werden. Außerdem sollte das Ergebnis des Datentyps der SELECT-Anweisung mit dem übereinstimmen, der während der Deklaration des starken Cursors festgelegt wurde.

Syntax von Strong Ref-Cursor in PL/SQL

Hier ist die Syntax des Strong-Ref-Cursors.

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

Die Rückgabeklausel spielt eine sehr wichtige Rolle bei der Deklaration eines Ref-Cursors. Sie schränkt ihren Geltungsbereich ein. Und begrenzt Ihren Ref-Cursor auf nur die SELECT-Anweisungen, die das Ergebnis zurückgeben, dessen Datentyp mit dem übereinstimmt, den Sie bei der Deklaration in der RETURN-Klausel angegeben haben.

Auch der Rückgabetyp eines Ref-Cursors muss immer vom Datentyp Record sein. Es kann entweder eine Datensatzstruktur einer Tabelle oder eine benutzerdefinierte Datensatzstruktur sein.

Was ist ein schwacher Ref-Cursor in der Oracle-Datenbank?

Im Gegensatz zu Strong-Ref-Cursor sind Schwach-Ref-Cursor solche, die keinen Rückgabetyp haben. Mit anderen Worten, diese Ref-Cursor, die keinen festen Rückgabetyp haben, werden schwache Ref-Cursor genannt.

Da schwache Ref-Cursor keinen festen Rückgabetyp haben, sind sie für alle SELECT-Anweisungen offen. Und das macht sie zu einem der am häufigsten verwendeten Ref-Cursor in PL/SQL.

Syntax schwacher Ref-Cursor in PL/SQL

DECLARE
	TYPE ref_cursor_name IS REF CURSOR;

Abgesehen von der fehlenden Rückgabeklausel ist die Syntax den Strong-Ref-Cursorn ziemlich ähnlich.

Eine kanadische Studie legt nahe, dass Menschen biologisch dazu veranlagt sind, faul zu sein. Außerdem, was bringt es, einen Computer mit all diesen Verarbeitungsleistungen zu haben, wenn wir die ganze harte Arbeit erledigen müssen, einen Ref-Zeigertyp zu deklarieren und dann eine Variable zu erstellen.

Nun, meine lieben Freunde, wenn Sie zu denen gehören, die sich die harte Arbeit zum Erstellen einer Cursorvariablen ersparen möchten, dann hat Oracle PL/SQL eine Option für Sie. Diese Option dient Ihnen als implizit erstellte Cursor-Variable. Mal sehen, was es ist.

Sys_RefCursor

Der Sys Ref-Cursor ist eine von Oracle eingebaute Cursor-Variable. Es deklariert einen schwachen Ref-Cursor und das auch ohne den Typ des Ref-Zeigers zu deklarieren. Meistens wird es als generischer Cursor verwendet, der als Argument an ein gespeichertes Unterprogramm übergeben werden kann.

Das war es für dieses Tutorial zur Einführung in PL/SQL-Ref-Cursor in Oracle Database. Bleiben Sie dran, denn in den kommenden Tutorials werden wir einige praktische Demonstrationen des Ref-Cursors in Oracle PL/SQL durchführen.

Weitere Einzelheiten finden Sie auch im Video-Tutorial zum gleichen Thema auf meinem YouTube-Kanal.

Danke für's vorbeikommen. Ich wünsche Ihnen einen schönen Tag!