Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Werte in Benutzervariable oder Deskriptorbereich lesen

Wenn Werte aus Tabellenspalten oder Ausgabeparametern einer Routine in einer Benutzervariable oder in einem Deskriptorbereich abgelegt werden (SELECT...INTO, EXECUTE...INTO, FETCH...INTO, INSERT...RETURN INTO, CALL), gelten folgende Regeln:

  • Werte aus atomaren Spalten, multiplen Spalten mit Dimension 1 oder Ausgabeparametern einer Prozedur können in einer einfachen Benutzervariable, einem Vektor mit einem Element oder in einem Deskriptorbereichseintrag abgelegt werden.

  • Aggregate von multiplen Spalten mit einer Dimension d größer als 1 können in einem Vektor mit d Elementen oder in d aufeinanderfolgenden Deskriptorbereichseinträgen abgelegt werden.

  • Ist der zu übertragende Wert ein NULL-Wert, wird die Indikatorvariable bzw. das Deskriptorbereichsfeld INDICATOR auf -1 gesetzt. Ist bei einer Benutzervariable keine Indikatorvariable angegeben, wird eine Fehlermeldung erzeugt.

  • Abhängig vom Datentyp gelten zusätzlich datentypspezifische Regeln, die im Folgenden zusammengestellt sind.

Zeichenketten

Sie können einen alphanumerischen Spaltenwert oder einen alphanumerischen Ausgabeparameter einer Prozedur in eine Benutzervariable oder einen Deskriptorbereichseintrag mit alphanumerischem Datentyp lesen. Sie können einen National-Spaltenwert oder einen National-Ausgabeparameter einer Prozedur in eine Benutzervariable oder einen Deskriptorbereichseintrag mit National-Datentyp lesen. Dabei gilt:

  • Ist der Zieldatentyp CHAR oder NCHAR und die Länge des Werts kleiner als die Länge des Zieldatentyps, wird der Wert am Ende mit Leerzeichen ergänzt.

  • Ist der Zieldatentyp CHAR oder NCHAR und die Länge des Werts größer als die Länge des Zieldatentyps, wird der Wert am Ende auf die Länge des Zieldatentyps gekürzt und eine Warnung erzeugt. Die Indikatorvariable (sofern angegeben) bzw. das Deskriptorbereichsfeld INDICATOR wird auf die Originallänge des Spaltenwerts gesetzt.

  • Ist der Zieldatentyp VARCHAR oder NVARCHAR und die Länge des Werts größer als die maximale Länge des Zieldatentyps, wird der Wert am Ende auf die maximale Länge des Zieldatentyps gekürzt und eine Warnung erzeugt. Die Indikatorvariable (sofern angegeben) bzw. das Deskriptorbereichsfeld INDICATOR wird auf die Originallänge des Spaltenwerts gesetzt.

Numerische Werte

Sie können einen numerischen Spaltenwert oder einen numerischen Ausgabeparameter einer Prozedur in eine Benutzervariable oder einen Deskriptorbereichseintrag mit numerischem Datentyp lesen. Stimmen die numerischen Datentypen nicht überein, wird der Wert in den Zieldatentyp konvertiert. Dabei gilt:

  • Ist die Nachkommastellenzahl des Werts für den Zieldatentyp zu groß, wird der Wert gerundet.

  • Ist der Betrag des Werts für den Zieldatentyp zu groß, wird der Wert nicht eingetragen, sondern eine Fehlermeldung erzeugt.

Zeitwerte

Sie können einen Spaltenwert mit Zeit-Datentyp oder einen Ausgabeparameter einer Prozedur mit Zeit-Datentyp nur in eine Benutzervariable oder einen Deskriptorbereichseintrag mit gleichem Datentyp lesen:

  • ein Datum in eine Benutzervariable oder einen Deskriptorbereichseintrag mit Datentyp DATE

  • eine Uhrzeit in eine Benutzervariable oder einen Deskriptorbereichseintrag mit Datentyp TIME

  • einen Zeitstempel in eine Benutzervariable oder einen Deskriptorbereichseintrag mit Datentyp TIMESTAMP