0 / 0
Retourner à la version anglaise de la documentation
Impossible de pousser vers le bas des fonctions de chaîne avec des unités de chaîne sur la source de données distante 'Db2 dans la Data Virtualization
Dernière mise à jour : 26 nov. 2024
Impossible de pousser vers le bas des fonctions de chaîne avec des unités de chaîne sur une source de données distante Db2 dans Data Virtualization

Vous pouvez utiliser des fonctions de chaîne avec des unités de chaîne à partir d'une source de données distante Db2, mais la fonction de chaîne n'est pas transférée sur la source de données distante Db2.

Symptômes

Vous utilisez des fonctions de chaîne avec des unités de chaîne dans une requête et la fonction de chaîne n'est pas transférée sur la source de données distante Db2.

Par exemple

select SUBSTRING (col13_char, 1, 2,OCTETS) from n1

Résolution du problème

Pour résoudre ce problème, vous devez définir les options SAME_CODESET et STRING_UNITS. L'option SAME_CODESET permet de définir l'attribut de serveur SAME_CODESET en externe. L'option STRING_UNITS permet de définir l'attribut de serveur STRING_UNITS en externe. Il s'agit de la configuration de la source de données distante string_units for Db2.

  1. Récupère le cid à partir de la table dvsys.rdb_connections.
    select cid, url from dvsys.rdb_connections;
  2. Vérifiez si le " codeset entre la base de données locale de Data Virtualization et la source de données distante " Db2 est le même.

    Exécutez la commande suivante dans la base de données locale de Data Virtualization et dans la source de données distante " Db2 pour obtenir le paramètre " codeset.

    db2 get db cfg for <dbname> | grep "Database code set"

    <dbname> est le nom de la base de données et "Database code set" = UTF-8.

    Si le paramètre est le même, vous pouvez définir SAME_CODESET sur Y.

  3. Exécutez la commande suivante dans la source de données distante Db2 pour trouver le paramètre d'unités de chaîne.
    db2 get db cfg for <dbname> | grep "STRING_UNITS"

    < nom_bd> est le nom de la base de données et l'unité de chaîne par défaut ("STRING_UNITS") est définie sur SYSTEM.

    Si le paramètre est SYSTEM, définissez STRING_UNITS sur S. Si le paramètre est CODEUNITS32, définissez STRING_UNITS sur C.

  4. Exécutez les commandes suivantes pour spécifier les options SAME_CODESET et STRING_UNITS . Utilisez la valeur < cid> que vous avez obtenue à l'étape 1 et la valeur de SAME_CODESET que vous avez déterminée à l'étape 2 et la valeur de STRING_UNITS que vous avez déterminée à l'étape 3.
    alter server qplex options(set <cid>@same_codeset 'Y')
    alter server qplex options(set <cid>@string_units 'S')

    Ou

     alter server qplex options(set <cid>@same_codeset 'N')
     alter server qplex options(set <cid>@string_units 'C')

Pour plus d'informations, voir Chaînes de caractères dans la documentation de Db2.

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