Wenn Sie in einer Prozedur den Ausgabeparametern oder in einer Routine den lokalen Variablen oder dem Funktionswert einer UDF Werte zuweisen (SET, RETURN, SELECT...INTO, FETCH...INTO, INSERT...RETURN INTO), dann gelten datentyp-spezifische Regeln. Diese sind im Folgenden zusammengestellt.
Zeichenketten
Sie können einen alphanumerischen Wert in einen Ausgabeparameter oder eine lokale Variable mit alphanumerischem Datentyp eintragen. Sie können einen National-Wert in einen Ausgabeparameter oder eine lokale Variable mit National-Datentyp eintragen. 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.
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.
Numerische Werte
Sie können einen numerischen Wert in einen Ausgabeparameter oder eine lokale Variable mit numerischem Datentyp eintragen. 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 Wert mit Zeit-Datentyp nur in einen Ausgabeparameter oder eine lokale Variable mit gleichem Datentyp eintragen:
ein Datum in einen Ausgabeparameter oder eine lokale Variable mit Datentyp DATE
eine Uhrzeit in einen Ausgabeparameter oder eine lokale Variable mit Datentyp TIME
einen Zeitstempel in einen Ausgabeparameter oder eine lokale Variable mit Datentyp TIMESTAMP