Codage de la base de données DB2

Codage de la base de données DB2

La présente section contient des informations importantes sur les problèmes avec le codage et d'autres relatives à la définition de la taille des bases de données DB2 et DB2 for z/OS, ainsi que les actions que vous devez entreprendre afin de résoudre ces problèmes.

Problème rencontré

Lorsque vous utilisez un jeu de caractères multi-octets (MBCS) et/ou un codage multi-octets, DB2 traite les colonnes en fonction de leur taille en octets et non en fonction de leur longueur en caractères. Cela signifie que, lorsque vous utilisez des caractères multi-octets et en fonction de la longueur réelle en caractères, la colonne CHAR, VARCHAR ou CLOB risque de stocker moins de caractères qu'indiqué dans sa spécification de longueur.

Considérez ce qui suit :

Lorsqu'il s'agit de données à simple octet, la chaîne rentre et son traitement réussit. En revanche, lorsqu'il s'agit de données multi-octets, la chaîne ne rentre pas et des erreurs de dépassement surviennent lors de la phase d'exécution. Ceci dit, en général, les clients Web IBM Cúram Social Program Management capturent et signalent les erreurs de dimension d'une zone de façon conviviale. Mais dans le cas ci-dessus, la vérification du nombre de caractères et non de la longueur en octets suppose que le client ne peut pas capturer la non-concordance des tailles. L'utilisateur reçoit alors une erreur "exception serveur non gérée", correspondant à une erreur SQL sous-jacente de code -302.

Résolution du problème par Cúram

Cúram dispose de capacités de modélisation et d'un temps de génération permettant de redimensionner les colonnes de ses bases de données afin de résoudre le problème ci-dessus. Ces capacités sont décrites plus en détail dans le manuel Cúram - Guide de référence en modélisation et Cúram Server - Guide du développeur.

Etant donné que Cúram dispose d'une prise en charge multilingue prête à l'emploi, sa prise en charge des données MBCS est activée par défaut dans le kit d'extension maximum. Les paramètres de cette extension permettent d'éviter la survenue de cette erreur pour les nouveaux utilisateurs ou dans des environnements de test à cause de paramètres de langue, de codage ou de définition de la taille des bases de données. De plus, les utilisateurs peuvent éventuellement avoir besoin des données MBCS lorsqu'ils importent ou copient-collent des données provenant d'autres applications dans leur système Cúram. Toutefois, ces paramètres par défaut peuvent ne pas convenir à tous les environnements. La section ci-dessus explique les considérations qui peuvent vous pousser à modifier les paramètres de l'extension.

Eléments à prendre en compte

Il est très important de prêter une grande attention à vos exigences de codage des données en ce qui concerne DB2 et Cúram afin d'éviter un comportement inattendu avec la façon dont la base de données stocke les caractères.

La considération ci-dessus est un cas limite dans lequel la longueur des données correspond à la largeur maximale des colonnes. Dans de nombreux cas, il est improbable, même avec des caractères MBCS, qu'une situation de dépassement se produise, étant donné que la plupart des données n'atteignent pas la taille maximale définie. Toutefois, vous devez tout de même vous préparer à l'éventuelle survenue de ces situations d'erreur.

Vous devez utiliser le codage de base de données à jeu de caractères qui convient à votre application et à votre environnement. Dans la mesure du possible, vous devez éventuellement utiliser un codage et un jeu de caractères à simple octet compatible avec vos exigences. Par exemple, CP1252 prend en charge la plupart des caractères d'Europe occidentale. Cependant, le codage CP1252 (ou d'autres codages SBCS) peut ne pas prendre en charge des caractères provenant d'autres codages/jeux de caractères, notamment "élargis" (par exemple, UTF-8) pouvant être utilisés pour copier et coller dans le navigateur pour Cúram.

Au moment d'installer votre base de données DB2 (ou DB2 for z/OS), vous devrez uniquement déterminer si vous souhaitez utiliser des données SBCS ou MBCS et vous préparer à prendre les actions appropriées avant de générer votre base de données Cúram :