Expliziter Cursor gegen implizite Cursor
Wenn es um Datenbanken geht, ist ein Cursor eine Kontrollstruktur, die das Überqueren der Datensätze in einer Datenbank ermöglicht. Ein Cursor bietet einen Mechanismus, um einer SQL -Auswahlanweisung einen Namen zuzuweisen. Anschließend kann er verwendet werden, um die Informationen in dieser SQL -Anweisung zu manipulieren. Implizite Cursoren werden jedes Mal automatisch erstellt und verwendet, wenn eine ausgewählte Anweisung in PL/SQL ausgestellt wird, wenn kein explizit definierter Cursor vorliegt. Explizite Cursoren werden, wie der Name schon sagt, vom Entwickler explizit definiert. In PL/SQL ist ein expliziter Cursor tatsächlich eine benannte Abfrage, die mit dem Schlüsselwort Cursor definiert ist.
Was ist implizite Cursor?
Implizite Cursoren werden automatisch von Oracle erstellt und verwendet, wenn eine ausgewählte Anweisung ausgestellt wird. Wenn ein impliziter Cursor verwendet wird. Implizite Cursoren sollten nur mit SQL -Anweisungen verwendet werden, die eine einzelne Zeile zurückgeben. Wenn die SQL -Anweisung mehr als eine Zeile zurückgibt, führt die Verwendung eines impliziten Cursors einen Fehler ein. Ein impliziter Cursor wird automatisch mit jeder Datenmanipulationssprache (DML) zugeordnet, nämlich Anweisungen einfügen, aktualisiert und löschen. Außerdem wird ein impliziter Cursor verwendet, um die Auswahl in Aussagen zu verarbeiten. Wenn Sie Daten mit impliziten Cursors abrufen, kann die Ausnahme von NO_DATA_FOUND angehoben werden, wenn die SQL -Anweisung keine Daten zurückgibt. Darüber hinaus können implizite Cursors Ausnahmen zu_Many_Rows erhöhen, wenn die SQL -Anweisung mehr als eine Zeile zurückgibt.
Was ist expliziter Cursor?
Wie bereits erwähnt, sind explizite Cursoren Abfragen, die mit einem Namen definiert wurden. Ein expliziter Cursor kann als Zeiger auf eine Reihe von Datensätzen betrachtet werden, und der Zeiger kann innerhalb der Datensätze vorangetrieben werden. Explizite Cursors bieten dem Benutzer die vollständige Kontrolle über das Öffnen, Schließen und Abholen von Daten. Außerdem können mehrere Zeilen mit einem expliziten Cursor abgerufen werden. Explizite Cursor können ebenso wie jede Funktion oder Prozedur Parameter einnehmen, damit die Variablen im Cursor jedes Mal geändert werden können, wenn sie ausgeführt wird. Außerdem können Sie explizite Cursor. Wenn Sie einen expliziten Cursor verwenden, muss er zunächst mit einem Namen deklariert werden. Cursorattribute können mit dem dem Cursor gegebenen Namen zugegriffen werden. Nach der Erklärung muss der Cursor zuerst geöffnet werden. Dann kann das Abrufen gestartet werden. Wenn mehrere Zeilen abgerufen werden müssen, muss der Abrufvorgang in einer Schleife durchgeführt werden. Schließlich muss der Cursor geschlossen werden.
Unterschied zwischen explizitem Cursor und implizitem Cursor
Der Hauptunterschied zwischen dem impliziten Cursor und dem expliziten Cursor besteht darin, dass ein expliziter Cursor explizit definiert werden muss. Darüber hinaus können mehrere Zeilen mit explizit. Auch no_data_found und to_Many_rows -Ausnahmen werden bei der Verwendung expliziter Cursor nicht angehoben, im Gegensatz zu implizit. Im Wesentlichen sind implizite Cursoren anfälliger für Datenfehler und bieten weniger programmatische Kontrolle als explizit. Außerdem werden implizite Cursoren als weniger effizient angesehen als explizite Cursor.