0 / 0
資料の 英語版 に戻る
Data Virtualization化のリモートデータソース「Db2」で、文字列単位の文字列関数をプッシュダウンできない
最終更新: 2024年11月26日
Data Virtualizationの Db2リモートデータソースで、文字列単位の文字列関数をプッシュダウンできない

ストリング単位を持つストリング関数は、Db2 のリモート・データ・ソースから使用することはできますが、ストリング関数は Db2 のリモート・データ・ソース上ではプッシュ・ダウンされません。

症状

照会でストリング単位を持つストリング関数を使用すると、ストリング関数は Db2 のリモート・データ・ソース上ではプッシュ・ダウンされません。

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

問題の解決

この問題を解決するには、SAME_CODESET オプションと STRING_UNITS オプションを設定する必要があります。 SAME_CODESET オプションは、SAME_CODESET サーバー属性を外部で設定する方法を提供します。 STRING_UNITS オプションは、STRING_UNITS サーバー属性を外部で設定する方法を提供します。 これは、string_units for Db2 リモート・データ・ソースの設定です。

  1. dvsys.rdb_connections 表から cid を取得します。
    select cid, url from dvsys.rdb_connections;
  2. Data Virtualizationローカルデータベースとリモートデータソース「Db2間の「codeset」が同じかどうかを確認する。

    Data Virtualizationのローカルデータベースと 'Db2リモートデータソースの両方で以下のコマンドを実行し、'codeset設定を取得する。

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

    ここで、<dbname> はデータベース名と "Database code set" = UTF-8です。

    設定が同じ場合は、SAME_CODESET を Y に設定できます。

  3. Db2 リモート・データ・ソースで以下のコマンドを実行して、ストリング単位の設定を見つけます。
    db2 get db cfg for <dbname> | grep "STRING_UNITS"

    ここで、 < dbname> はデータベース名で、デフォルトのストリング単位 ("STRING_UNITS") は SYSTEMに設定されます。

    設定が SYSTEMの場合は、STRING_UNITSSに設定します。 設定が CODEUNITS32の場合は、STRING_UNITSCに設定します。

  4. 以下のコマンドを実行して、 SAME_CODESET および STRING_UNITS オプションを指定します。 ステップ 1 で取得した < cid> 値と、ステップ 2 で決定した SAME_CODESET の値、およびステップ 3で決定した STRING_UNITS の値を使用します。
    alter server qplex options(set <cid>@same_codeset 'Y')
    alter server qplex options(set <cid>@string_units 'S')

    それとも

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

詳細については、Db2 の資料の「文字ストリング」を参照してください。

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細