ランタイム列伝播(RCP)機能を使用してDataStage9.1を使用してDB29.7からいくつかのデータを読み取ろうとしています。一般的なアプローチは、接続の詳細とテーブル名のみを指定してクエリSQLを生成するようにDB2コネクタステージを設定することです。このアプローチはほとんどの場合機能しますが、マルチバイト文字で問題が発生しています。
この設定をしていて、読み取られるデータがCJK(中国語、日本語、または韓国語)言語のいずれかからのものである場合、^Z
書き込み先のシーケンシャルファイルに文字が表示されます。このデータをデータセットに書き込むと、スキーマが列のデータ型がのstring
代わりにであると誤って指定していることがわかりますustring
。デフォルトの型変換ドキュメントを読むと、DataStageはDB2からデータをとして読み取っていますがustring
、生成されたデータセットにとして挿入しようとしているようstring
です。
テーブルのテーブル定義を生成すると、そのstring
タイプの列が生成されていることがわかります。ただし、テーブル定義をDB2コネクターにロードすると、デフォルトでチェックされているチェックボックスが表示されます。このチェックボックスは、Unicode
拡張属性を文字列に自動的に追加します。
上記のすべての情報を使用すると、DataStageはのustring
代わりに列を生成できるように見えますstring
が、実行時の列の伝播では生成されません。
つまり、RCPを使用するときにDataStageにustring列を生成するように説得する方法はありますか?DB2コネクタステージに設定はありますか?プロジェクトレベルでの設定はありますか?これを制御する環境変数はありますか?そうでない場合は、すべてのテーブルのテーブル定義を作成し、発生している問題のためだけにそのデータを抽出するカスタムジョブを作成する必要がありますか?