0 / 0
Retourner à la version anglaise de la documentation
Résultats de requête incorrects pour les sources de données distantes 'Db2 dans la Data Virtualization
Dernière mise à jour : 26 nov. 2024
Résultats de requête incorrects pour les sources de données distantes Db2 dans Data Virtualization

Si vous exécutez des requêtes qui comparent les types de données de chaîne à des bases de données distantes Db2® qui utilisent le type de connexion Db2 qui n'est pas en mode de compatibilité VARCHAR2, ces requêtes peuvent renvoyer des résultats incorrects.

Symptômes

Vous exécutez des requêtes qui comparent les types de données de chaîne (CHAR ou VARCHAR) à des bases de données distantes Db2 qui ne sont pas en mode de compatibilité VARCHAR2 et utilisent le type de connexion Db2. Vous obtenez des résultats différents de ceux que vous obtenez dans une base de données locale car les requêtes sont en aval et suivent les règles de comparaison Db2 distantes.

Exemple :
select col_char from testable1 union select col_varchar from testable2;
select col_char from testable1 except select col_varchar from testable2;
select col_char from testable1 intersect select col_varchar from testable2;

Vous pouvez vérifier la configuration de la base de données Db2 distante en exécutant la commande db2 get db cfg. Dans l'exemple suivant, la base de données n'est pas en mode de compatibilité VARCHAR2.

$ db2 get db cfg for testdb |grep "Varchar2 compatibility"
Varchar2 compatibility                                  = OFF

Résolution du problème

Pour contourner ce problème, modifiez l'option du serveur de séquence de classement.
  1. Exécutez l'instruction suivante pour identifier l'ID de connexion interne (CID) de votre source de données.
    select * from DVSYS.LISTRDBC;

    Cette requête répertorie toutes les connexions de la grappe. Recherchez dans la sortie la ligne de la ou les connexions que vous souhaitez modifier.

  2. Exécutez la commande suivante pour modifier le paramètre COLLATING_SEQUENCE de cette connexion à 'I' pour chaque connexion que vous souhaitez modifier.
    ALTER SERVER QPLEX OPTIONS (add <CID>@collating_sequence 'I');
    Exemple :
    ALTER SERVER QPLEX OPTIONS (add DB210000@collating_sequence 'I');
Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus