Wie zu holen SQL Daten aus einer einzigen Zeile

EIN Mauszeiger

ermöglicht SQL (oder aktualisieren oder löschen), um eine einzelne Zeile zu einem Zeitpunkt abzurufen, so dass Sie SQL in Verbindung mit einer Anwendung geschrieben in einem der gängigen Sprachen verwenden können. Die Verarbeitung Cursor ist ein Drei-Stufen-Prozess:

  1. Das declare cursor Anweisung gibt den Namen des Cursors und Umfang.

  2. Das ÖFFNEN Anweisung speichert die Tabellenzeilen durch die gewählte declare cursor Abfrageausdruck.

  3. Das HOLEN Anweisung ruft die Daten tatsächlich.

Der Cursor kann auf eine der Zeilen in den Anwendungsbereich der Cursorpunkt oder an die Stelle unmittelbar vor der ersten Zeile in den Rahmen oder an die Stelle unmittelbar nach der letzten Zeile in dem Rahmen oder in dem leeren Raum zwischen zwei Reihen. Sie können angeben, wo sich der Cursor mit der Orientierungs Klausel verweist in der HOLEN Erklärung.

Syntax

Die Syntax für die HOLEN Aussage

FETCH [[Orientierung] FROM] Cursor-nameINTO Ziel-Spezifikation [ziel Spezifikation] ... -

Sieben Ausrichtungsoptionen stehen zur Verfügung:

  • NÄCHSTER

  • PRIOR

  • ZUERST

  • LETZTE

  • ABSOLUTE

  • RELATIV

Die Standardoption ist NÄCHSTER, die, nebenbei bemerkt, war die nur Orientierung in den Versionen von SQL vor der SQL-92. Das NÄCHSTER Orientierung bewegt den Cursor von wo auch immer es ist, in die nächste Zeile in dem Satz von der Abfrage-Ausdruck angegeben. Das bedeutet, dass, wenn der Cursor vor dem ersten Datensatz befindet, ist es auf den ersten Datensatz bewegt.

Wenn es Punkte aufzeichnen n, es bewegt sich aufnehmen n+1. Wenn sich der Cursor in dem Satz auf den letzten Datensatz zeigt, bewegt er sich über diesen Datensatz, und die Anmeldung eines keine Daten Bedingung wird in der zurück SQLSTATE Systemvariable.

Die Zielspezifikationen sind entweder Host-Variablen oder Parameter, je nachdem, ob eingebettete SQL oder ein Modul Sprache ist jeweils mit dem Cursor. Die Anzahl und Arten der Zielspezifikationen müssen die Anzahl und Art der Spalten durch die Abfrageausdruck in den angegebenen übereinstimmen declare cursor.

So im Fall von Embedded SQL, wenn Sie eine Liste von fünf Werten aus einer Zeile einer Tabelle holen, fünf Host-Variablen muss es sein, diese Werte zu erhalten, und sie müssen die richtigen Typen sein.

Ausrichtung eines scrollbaren Cursor

Da der SQL-Cursor scrollbaren ist, haben Sie andere Möglichkeiten außer NÄCHSTER. Wenn Sie angeben, PRIOR, der Zeiger bewegt sich in die Reihe unmittelbar seiner aktuellen Position vorhergehenden. Wenn Sie angeben, ZUERST, er zeigt auf den ersten Datensatz in der Menge, und wenn Sie angeben, LETZTE, verweist er auf den letzten Datensatz.

Wenn Sie die ABSOLUTE und RELATIV Orientierung, müssen Sie einen Integer-Wert angeben, wie gut. Beispielsweise, FETCH ABSOLUTE 7 bewegt den Cursor auf der siebten Reihe von Anfang des Satzes. FETCH RELATIVE 7 bewegt den Cursor sieben Zeilen über seine aktuelle Position. FETCH RELATIVE 0 nicht den Cursor zu bewegen.

FETCH RELATIVE 1 hat die gleiche Wirkung wie FETCH NEXT-. FETCH RELATIVE -1 hat die gleiche Wirkung wie FETCH PRIOR. FETCH ABSOLUTE 1 gibt Ihnen den ersten Datensatz in der Menge, FETCH ABSOLUTE 2 gibt Ihnen den zweiten Datensatz in der Menge, und so weiter.

Ähnlich, FETCH ABSOLUTE -1 gibt Ihnen den letzten Datensatz in der Menge, FETCH ABSOLUTE -2 gibt Ihnen die nächste zu letzten Platte, und so weiter. Spezifizierung FETCH ABSOLUTE 0 gibt den Code Ausnahmebedingung nicht-Daten, als Wille FETCH ABSOLUTE 17 wenn nur 16 Zeilen in dem Satz. HOLEN gibt Ihnen die Aufzeichnung durch die einfache Wertvorgabe festgelegt.

Positioniert DELETE und UPDATE-Anweisungen

Sie können sich auf die Zeile löschen und Update-Operationen durchführen, um die der Cursor aktuell zeigt. Die Syntax der LÖSCHEN Anweisung sieht wie folgt aus:

DELETE FROM Tabellenname WHERE CURRENT OF cursor-name -

Wenn sich der Cursor auf eine Zeile zeigt nicht, gibt die Anweisung einen Fehlerzustand, und keine Löschung erfolgt.

Die Syntax der AKTUALISIEREN -Anweisung ist wie folgt:

UPDATE Tabellen NameSet Spaltenname = Wert [, Spaltenname = Wert] ... WHERE CURRENT OF cursor-name -

Der Wert, den Sie in jede angegebene Spalte platzieren muss ein Wert für den Ausdruck oder das Schlüsselwort sein STANDARD. Wenn ein versuchter positioniert Update-Operation einen Fehler zurückgibt, wird das Update nicht durchgeführt.

Menü