GET DESCRIPTOR liest die Werte von Feldern eines SQL-Deskriptorbereichs.
Der Deskriptorbereich muss mit ALLOCATE DESCRIPTOR angelegt und vor dem GET DESCRIPTOR-Aufruf belegt worden sein.
GET DESCRIPTOR GLOBAL
deskriptor
{ :
benutzervariable =COUNT |
VALUE
eintragsnummer :
benutzervariable =
feldbezeichner
[,
benutzervariable =
feldbezeichner ]...}
eintragsnummer ::= {
ganzzahl | :
benutzervariable }
feldbezeichner ::=
{
REPETITIONS |
TYPE |
DATETIME_INTERVAL_CODE |
PRECISION |
SCALE |
LENGTH |
INDICATOR |
DATA |
OCTET_LENGTH |
NULLABLE |
NAME |
UNNAMED
}
deskriptor
Name des SQL-Deskriptorbereichs, dessen Einträge gelesen werden sollen.
benutzervariable=COUNT
Benutzervariable vom SQL-Datentyp SMALLINT, in die der Wert des Deskriptorbereichsfelds COUNT eingetragen wird.
eintragsnummer
Nummer des Eintrags im SQL-Deskriptorbereich, von dem Felder gelesen werden sollen. Die Einträge im Deskriptorbereich sind beginnend mit 1 durchnummeriert. Für eintragsnummer können Sie eine Ganzzahl oder eine Benutzervariable angeben: 1 <= eintragsnummer <= festgelegte Maximalanzahl von Deskriptorbereichseinträgen
Bei eintragsnummer > COUNT wird ein entsprechender SQLSTATE gesetzt, der mit WHENEVER NOT FOUND behandelt werden kann.
benutzervariable=feldbezeichner
Benutzervariable, in die der Wert des angegebenen Deskriptorbereichsfelds des Eintrags eintragsnummer eingetragen wird. Der SQL-Datentyp der Variable hängt vom angegebenen Feldbezeichner ab.
feldbezeichner
Feld des Eintrags eintragsnummer, das gelesen werden soll. Die Deskriptorbereichsfelder sind im Abschnitt „Deskriptorbereichsfelder" beschrieben. Ein feldbezeichner darf innerhalb einer GET DESCRIPTOR-Anweisung mehrfach vorkommen.
Bei der Übertragung eines Werts von einem Deskriptorbereichsfeld in eine Benutzervariable muss die Benutzervariable bei allen Feldern außer bei NAME und DATA den SQL-Datentyp SMALLINT haben.
Zum Übertragen des Werts von NAME muss die Benutzervariable den SQL-Datentyp CHAR(n) oder VARCHAR(n) haben, mit n >= 128.
Zum Übertragen des Werts von DATA muss die Benutzervariable genau den SQL-Datentyp haben, der durch die Felder TYPE, DATETIME_INTERVAL_CODE, LENGTH, PRECISION, SCALE desselben Eintrags festgelegt ist (siehe Abschnitt „Werte zwischen Benutzervariablen und Deskriptorbereich übertragen").
Außer für die Felder DATA und INDICATOR dürfen keine Vektoren angegeben werden. Wenn DATA und INDICATOR angegeben sind, müssen beide einfach oder Vektoren mit gleicher Anzahl von Elementen sein.
Ist ein Vektor mit mehreren Elementen angegeben, dann müssen bei genau so vielen nachfolgenden Einträgen die Eintragsnummern <= der festgelegten Maximalanzahl von Deskriptorbereichseinträgen sein. Sind Eintragsnummern > COUNT, wird ein entsprechender SQLSTATE gesetzt, der mit WHENEVER NOT FOUND behandelt werden kann.
GET DESCRIPTOR liest den Wert des angegebenen Felds, der zuletzt gesetzt wurde. Ist der Wert des Felds undefiniert, ist auch der zurückgelieferte Wert nicht definiert.
Für das Feld DATA gilt zusätzlich: Ist der Wert des Felds INDICATOR desselben Eintrags < 0, muss die GET DESCRIPTOR-Anweisung das INDICATOR-Feld auch enthalten und es wird nur das INDICATOR-Feld zugewiesen.
Sind Vektoren angegeben, werden entsprechend viele Einträge ab eintragsnummer gelesen.
Examples
Name, Typ und Länge in Byte des dritten Eintrages im SQL-Deskriptorbereich DEMO_DESC lesen:
Anzahl der Einträge im SQL-Deskriptorbereich abfragen:
|
Siehe auch
ALLOCATE DESCRIPTOR, DEALLOCATE DESCRIPTOR, DESCRIBE, SET DESCRIPTOR