Wenn Sie in einer CALL-Anweisung (Prozeduraufruf) oder bei Aufruf einer User Defined Function (UDF) den Eingabeparametern für die Routine Werte zuweisen, dann gelten datentyp-spezifische Regeln. Diese sind im Folgenden zusammengestellt.
Zeichenketten
Sie können einen alphanumerischen Wert einem Eingabeparameter mit alphanumerischem Datentyp oder einen National-Wert einem Eingabeparameter mit National-Datentyp zuweisen. 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. Werden Zeichen entfernt, die keine Leerzeichen sind, wird der Wert nicht eingetragen, sondern eine Fehlermeldung 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. Werden Zeichen entfernt, die keine Leerzeichen sind, wird der Wert nicht eingetragen, sondern eine Fehlermeldung erzeugt.
Numerische Werte
Sie können einen numerischen Wert einem Eingabeparameter mit numerischem Datentyp zuweisen. Stimmen die numerischen Datentypen nicht überein, wird der Wert in den Datentyp des Eingabeparameters konvertiert. Dabei gilt:
Ist die Nachkommastellenzahl des Werts für den Datentyp des Eingabeparameters zu groß, wird der Wert gerundet.
Ist der Betrag des Werts für den Datentyp des Eingabeparameters zu groß, wird der Wert nicht eingetragen, sondern eine Fehlermeldung erzeugt.
Zeitwerte
Sie können einen Zeitwert nur einem Eingabeparameters mit gleichem Datentyp zuweisen:
ein Datum in einen Eingabeparameter mit Datentyp DATE
eine Uhrzeit in einen Eingabeparameter mit Datentyp TIME
einen Zeitstempel in einen Eingabeparameter mit Datentyp TIMESTAMP