Zitat Zitat von Fuerchau
VARLEN(200) heisst: Es sind mindesten 200 Zeichen erforderlich !
Definiere einfach:
A SZBEMERK 200A VARLEN

Der Klammerwert hinter VARLEN definiert die Mindestlänge !!!
A SZBEMERK 200A VARLEN(10) <= mindstens 10 max. 200
Das ist so nicht korrekt!

VARLEN(200) heißt, dass in jedem Satz 200 Byte für die Feld-Inhalte reserviert werden, und nicht dass mindestens 200 Zeichen erforderlich sind. In dem Feld können durchaus nur 5 Zeichen stehen.

Bei VARLEN(10) und einer Maximal-Länge von 200 Byte werden in jedem Datensatz 10 Byte reserviert. Muss ein Text, der länger als 10 Zeichen ist gespeichert werden, wird in dem Original-Feld nur ein Verweis auf eine Adresse in der Overflow- oder Spil-Area hinterlegt, unter der der komplette String dann gespeichert wird. Wir der Datensatz inclusive dieses Feldes eingelesen, muss zunächst die Adresse aufgelöst werden und die Daten aus der Overflow-Area eingelesen werden. Es ist also eine zusätzliche Aktion erforderlich.

Wird VARLEN ohne Längenangabe definiert, werden alle Daten in der Overflow-Area gespeichert, wenn die Maximal-Länge größer als 30 Bytes ist. Bei VARLEN-Feldern mit einer Maximal-Länge unter 30 Bytes wird DB2 UDB intern immer die Maximal-Länge im Datensatz reserviert.

Von Performance-Gesichtspunkten aus sollte die reservierte Länge so fest gelegt werden, dass ca. 90-95 % aller Einträge in diese reservierte Länge passen und nur einige Ausreißer in der Overflow-Area gespeichert werden.

Birgitta