Codierung der DB2-Datenbank

Dieser Abschnitt enthält wichtige Informationen zu Problemen in Verbindung mit der Codierung von DB2- und DB2 for z/OS-Datenbanken und der diesbezüglichen Dimensionierung. Ferner werden die Aktionen beschrieben, die Sie möglicherweise ausführen müssen.

Problemstellung

Bei Verwendung eines Mehrbyte-Zeichensatzes (MBCS) und/oder der Codierung verarbeitet DB2 Spalten in Abhängigkeit von der Bytegröße und nicht von der Zeichenlänge. Dies bedeutet, dass eine CHAR-, VARCHAR- oder CLOB-Spalte bei der Verwendung von Mehrbytezeichen je nach tatsächlicher Zeichenlänge möglicherweise weniger Zeichen speichert, als die Spaltenlängenspezifikation vorgibt.

Beispiel:

Im Falle der Einzelbytedaten passt die Zeichenfolge und die Verarbeitung ist erfolgreich. Bei den Mehrbytedaten hingegen passt die Zeichenfolge nicht, was während der Ausführung zu Überlauffehlern führt. Normalerweise erfasst und meldet ein IBM Cúram Social Program Management-Web-Client Feldgrößenfehler auf benutzerfreundliche Weise. Im obigen Fall kann der Client die Größenabweichung jedoch nicht erfassen, da die Anzahl der Zeichen und nicht die Bytelänge überprüft wird. Infolgedessen erhält der Benutzer einen Fehler vom Typ 'Nicht behandelte Serverausnahmebedingung', der ein zugrunde liegender SQL-Code -302-Fehler ist.

Problemlösung durch Cúram

Cúram stellt Modellierungs- und Buildzeitfunktionen zur Größenänderung von Datenbankspalten bereit, um das oben genannte Problem zu beheben. Diese Funktionen werden im Handbuch Cúram Modeling Reference Guide und im Handbuch Cúram Server Developer's Guide näher beschrieben.

Da Cúram standardmäßig Unterstützung für mehrere Sprachen bietet, ist die Unterstützung für MBCS-Daten standardmäßig mit dem maximalen Erweiterungssatz aktiviert. Diese Erweiterungseinstellungen stellen sicher, dass beispielsweise neue Benutzer oder Testumgebungen aufgrund der jeweiligen Sprache, Codierung oder Datenbankdimensionierung keine Fehler empfangen. Darüber hinaus wird der Benutzer möglicherweise feststellen, dass beim Importieren oder Kopieren/Einfügen von Daten aus anderen Anwendungen in das Cúram-System MBCS-Daten erforderlich sind. Diese Standardeinstellungen sind unter Umständen jedoch nicht für alle Umgebungen geeignet. Im folgenden Abschnitt finden Sie Hinweise zur Änderung dieser Erweiterungseinstellungen.

Wichtige Hinweise

Es ist wichtig, die Anforderungen an die Datencodierung im Hinblick auf DB2 und Cúram sorgfältig zu planen, um ein unerwartetes Verhalten der Datenbank bei der Speicherung von Zeichen zu vermeiden.

Das obige Beispiel stellt insofern einen Grenzfall dar, als die Datenlänge mit der maximalen Spaltenbreite übereinstimmt. In vielen Fällen ist es unwahrscheinlich, dass selbst bei Verwendung von MBCS-Zeichen eine Überlaufsituation eintritt, da die meisten Daten nicht die definierte Maximalgröße erreichen; dennoch müssen Sie auf die Möglichkeit dieser Fehlersituationen vorbereitet sein.

Verwenden Sie die für Ihre Anwendung und Umgebung passende Zeichensatzcodierung für die Datenbank. Nach Möglichkeit sollten Sie einen Einzelbytezeichensatz und eine Codierung in Betracht ziehen, die Ihre Anforderungen unterstützt. CP1252 unterstützt zum Beispiel die meisten westeuropäischen Zeichen. CP1252 (und andere SBCS-Codierungen) unterstützt jedoch möglicherweise Zeichen aus anderen oder 'ausgedehnteren' Zeichensätzen/Codierungen nicht (z. B. UTF-8), die vom Benutzer für Cúram kopiert und in den Browser eingefügt werden.

Zum Zeitpunkt der Installation der DB2- oder DB2 for z/OS-Datenbank müssen Sie lediglich Ihre Anforderungen im Hinblick auf SBCS- oder MBCS-Daten planen und vor der Erstellung der Cúram-Datenbank möglicherweise entsprechende Maßnahmen treffen: