SELECT-Anweisung (named_select_statement)
Durch eine SELECT-Anweisung (
named_select_statement) wird eine Ergebnistabelle mit dem Namen result_table_name definiert und gleichzeitig erzeugt (siehe benannte/unbenannte Ergebnistabelle).Syntax
<named_select_statement> ::= <named_query_expression>
[<order_clause>] [<update_clause>] [<lock_option>] [FOR REUSE]
Erläuterung
Eine
OPEN CURSOR-Anweisung ist für eine mit dieser SELECT-Anweisung erzeugte Ergebnistabelle nicht zulässig.Für die SELECT-Anweisung (
named_select_statement) gelten sowohl die Regeln, die für die DECLARE CURSOR-Anweisung angegeben werden, als auch die Regeln, die für die OPEN CURSOR-Anweisung angegeben werden.Je nach Suchstrategie wird die Suche nach allen Zeilen der Ergebnistabelle bei der Ausführung der SELECT-Anweisung (
named_select_statement) durchgeführt und die Ergebnistabelle physisch erzeugt oder jeweils die nächste Zeile der Ergebnistabelle bei der Ausführung einer FETCH-Anweisung gesucht und nicht physisch gespeichert. Dies ist beim Zeitverhalten von FETCH-Anweisungen zu berücksichtigen.Änderbare Ergebnistabelle
Eine Ergebnistabelle bzw. die ihr zugrundeliegenden Basistabellen sind änderbar, wenn die QUERY-Anweisung folgende Bedingungen erfüllt:
ORDER-Klausel
Die
ORDER-Klausel spezifiziert eine Sortierreihenfolge für eine Ergebnistabelle.UPDATE-Klausel
Die Angabe einer
UPDATE-Klausel ist nur bei änderbaren Ergebnistabellen erlaubt. Bei änderbaren Ergebnistabellen entspricht ein Standpunkt in der Ergebnistabelle immer einem Standpunkt in den zugrundeliegenden Tabellen und damit letzlich einem Standpunkt in einer oder mehreren Basistabellen.Wenn eine UPDATE-Klausel angegeben wurde, können die Basistabellen mit Hilfe des Standpunktes in der Ergebnistabelle (Angabe von
CURRENT OF <result_table_name>) durch eine UPDATE-Anweisung oder eine DELETE-Anweisung geändert werden. Es kann mit Hilfe einer LOCK-Anweisung eine Sperre für die betroffene Zeile jeder betroffenen Basistabelle angefordert werden.LOCK-Option
Die
LOCK-Option bestimmt, welche Sperren auf die gelesenen Zeilen gesetzt werden.FOR REUSE
Soll die Ergebnistabelle in einer nachfolgenden
QUERY-Anweisung in der FROM-Klausel angegeben werden, so sollte diese Ergebnistabelle mit den Schlüsselwörtern FOR REUSE angegeben werden. Wenn FOR REUSE nicht angegeben ist, hängt die Wiederverwendbarkeit der Ergebnistabelle von systeminternen Strategien ab.Da die Angabe von FOR REUSE die Antwortzeiten einiger QUERY-Anweisungen verschlechtert, sollte FOR REUSE nur angegeben werden, wenn es für die Wiederverwendbarkeit der Ergebnistabelle notwendig ist.
Siehe auch:
SELECT-Anweisung (select_statement)