READ RESULT SET (SQL)

#### Search Results

Search

# READ RESULT SET (SQL)

Common Set-Syntax:

`READ` [(limit)] `RESULT SET` result-set `INTO` |  | `VIEW` view-name parameter |  | `FROM` ddm-name
[`GIVING` [:] sql-code]
`END-RESULT`

Extended Set-Syntax:

`READ` [(limit)] `RESULT SET` result-set `INTO` |  | `VIEW` view-name parameter |  | `FROM` ddm-name
[`WITH INSENSITIVE SCROLL` [:] scroll-hv]
[`GIVING` [:] sql-code]
[`WITH ROWSET POSITIONING FOR` |  | [:] row_hv integer |  | `ROWS`]
`END-RESULT`

Dieses Dokument behandelt folgende Themen:

- Funktion

- Einschränkung

- Syntax-Beschreibung

- Beispiel

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen

Siehe auch READ RESULT SET - SQL im Teil Natural for Db2 in der Database Management System Interfaces-Dokumentation:

## Funktion

Das SQL-Statement `READ RESULT SET` kann nur in Verbindung mit einem `CALLDBPROC`-Statement verwendet werden. Es dient dazu, eine Ergebnismenge (Result Set) zu lesen, die von einer mit einem vorhergehenden `CALLDBPROC`-Statement aufgerufenen Stored Procedure erzeugt wurde.

## Einschränkung

Dieses Statement steht nur bei Natural for Db2 zur Verfügung.

## Syntax-Beschreibung

Syntax-Element | Beschreibung
--- | ---
`limit` | Limit-Option: Sie können die Anzahl der zu lesenden Zeilen begrenzen. Sie können das Limit entweder als numerische Konstante (`0 - 4294967295`) oder als Variable mit Format N, P oder I angeben.
`result-set` | Resultset (Ergebnismenge): Als `result-set` geben Sie eine Resultset-Locator-Variable an, die mit einem vorangehenden `CALLDBPROC`-Statement gefüllt wurde. `result-set` muss eine Variable von Format/Länge I4 sein. Anmerkung Wenn zwischen dem `CALLDBPROC`-Statement und dem `READ RESULT SET`-Statement eine Syncpoint-Operation stattfand, kann das `READ RESULT SET`-Statement nicht mehr auf die Result Sets zugreifen.
`INTO` | INTO-Klausel: Mit der `INTO`-Klausel geben Sie in dem Programm die Zielfelder an, die mit dem Resultset (Ergebnismenge) gefüllt werden sollen. Sie können mit der `INTO`-Klausel entweder einzelne Parameter oder eine oder mehrere Views angeben, und zwar so wie sie im `DEFINE DATA`-Statement definiert wurden.
`VIEW` view-name | VIEW-Klausel: Als `view-name` geben Sie eine View (Datensicht) an, deren Felder die Spalten des Resultset (Ergebnismenge) aufnehmen, der durch die mit dem `CALLDBPROC`-Statement aufgerufene Stored Procedure erstellt wurden. Die Anzahl der Spalten des Resultset (Ergebnismenge) muss der Anzahl der Felder entsprechen, die in der View angegeben sind (dazu zählen keine Gruppenfelder, Redefinierungsfelder und Indikator-Felder).
`parameter` | Parameter: Als Parameter geben Sie den Namen eines Feldes an, das eine Spalte des Resultset (Ergebnismenge) aufnimmt, der durch die mit dem `CALLDBPROC`-Statement aufgerufene Stored Procedure erstellt wurde.
`FROM ddm-name` | DDM-Name: Als `ddm-name` geben Sie den Namen des DDMs an, das benutzt wird, um auf die Datenbank zuzugreifen, die die Stored Procedure ausführt. Weitere Informationen siehe `ddm-name`.
`WITH INSENSITIVE SCROLL` `[:] scroll_hv` | WITH INSENSITIVE SCROLL-Klausel: Diese Klausel gehört zum SQL Extended Set. Mit dieser Klausel wird die Anwendung veranlasst, einen beliebig positionierbaren Insensitive Cursor zu verwenden, um auf das von dem zuvor aufgerufenen Stored Procedure erstellten Resultset (Ergebnismenge) zuzugreifen. Damit diese Klausel verwendet werden kann, muss die Stored Procedure das Resultset (Ergebnismenge) mit einem positionierbaren Cursor erstellt haben. `scroll_hv` muss eine alphanumerische Natural-Variable sein, die die Scroll-Richtung enthält. `scroll_hv` wird bei jeder Ausführung der `READ RESULT SET`-Verarbeitungsschleife ausgewertet. Wenn außerdem die Option `GIVING sqlcode` angegeben wird, bleibt die Verarbeitungsschleife auch dann geöffnet, wenn der SQLCODE +100 (Zeile nicht gefunden) von der RDBMS zurückgegeben wird. Die Verarbeitung wird beendet, wenn die Anwendung ein `ESCAPE`-Statement absetzt oder wenn der SQLCODE `+100` fünf Mal nacheinander auftritt, ohne dass eine Terminal-Ein-/Ausgabe erfolgt ist. Wird die Option `GIVING sqlcode` nicht angegeben, so wird die Verarbeitungsschleife beendet, wenn ein SQLCODE von der RDBMS zurückgeliefert wird, der ungleich `0` (erfolgreich) ist.
`GIVING sqlcode` | GIVING sqlcode-Klausel: Mit dieser optionalen Klausel erhalten Sie den SQLCODE der SQL-`FETCH`-Operation, mit der das Resultset (Ergebnismenge) verarbeitet wurde. Wenn Sie diese Option angeben und der SQLCODE der SQL-Operation ungleich `0` ist, wird keine Natural-Fehlermeldung ausgegeben. In diesem Fall muss die als Reaktion auf den SQLCODE-Wert auszuführende Aktion im aufrufenden Natural-Objekt programmiert werden. Das Feld `sqlcode` muss eine Variable mit Format/Länge I4 sein. Wenn Sie die Option `GIVING sqlcode` nicht verwenden, gibt Natural eine Fehlermeldung aus, falls der SQLCODE ungleich `0` ist.
`WITH ROWSET POSITIONING FOR ... ROWS` | WITH ROWSET POSITIONING FOR ... ROWS-Klausel: Diese Klausel gehört zum SQL Extended Set. Mit dieser Klausel wird die Anwendung veranlasst, mehrere Zeilen mit Daten aus dem Resultset (Ergebnismenge) zu lesen, der von der zuvor aufgerufenen Stored Procedure erstellt worden ist. Die Variable `integer` oder `:row_hv` bestimmt die Anzahl der abgerufenen Zeilen. Wenn außerdem die Option `GIVING sqlcode` angegeben wird, bleibt die Verarbeitungsschleife auch dann geöffnet, wenn der SQLCODE `+100` (Zeile nicht gefunden) von der RDBMS zurückgegeben wird. Die Verarbeitung wird beendet, wenn die Anwendung ein `ESCAPE`-Statement absetzt oder wenn der SQLCODE `+100` fünf Mal nacheinander auftritt, ohne dass eine Terminal-Ein-/Ausgabe erfolgt ist. Wird die Option `GIVING sqlcode` nicht angegeben, so wird die Verarbeitungsschleife beendet, wenn ein SQLCODE von der RDBMS zurückgeliefert wird, der ungleich `0` (erfolgreich) ist.
`END-RESULT` | Ende des READ RESULT SET-Statement: Das für Natural reservierte Schlüsselwort `END-RESULT` muss zum Beenden des `READ RESULT SET`-Statements verwendet werden.

## Beispiel

Siehe Example of CALLDBPROC/READ RESULT SET im Abschnitt CALLDBPROC - SQL in der Natural for Db2-Dokumentation.

### On this page

- Funktion
- Einschränkung
- Syntax-Beschreibung
- Beispiel