3. [SQL]フィールドでSQLクエリを作成します。手動で作成するか、Visual Query Builderを使 用します。詳細については、Visual Query Builder(28ページ)を参照してください。
4. クエリのwhere句に、#{variable}という構文で変数を使用して必要な条件を追加します。
例えば、テーブルCUSTOMERSがあり、列AGEには28、32、30などの値が入っており、列
SALARYには1000、1500、2200などの値が入っている場合、以下のようにSQLクエリを構
成します。
select * from CUSTOMERS where #{condition1} > 28 and #{condition2} >
1200
このSQLクエリのwhere句に変数を挿入すると、[SQLの作成...]、[フィールドの再生
成]、[プレビュー]の各ボタンが無効になります。
注:
5. [OK]をクリックします。
これでこのSQLクエリのwhere句は、[データフロー オプション]を使用して実行時に、または
Job Executorによってジョブを実行する際に、カスタマイズできます。
変数は、SQLクエリのselect句にも配置できます。ただし、その場合の変数名は、クエ リ対象のテーブルのいずれかの列の名前と一致する必要があります。
注:
データフロー オプションとしてのクエリ変数の設定
1. Read From DBステージで変数を含むクエリが定義済みの、必要なジョブを開きます。
2. [編集]>[データフロー オプション] を開きます。
3. [追加]をクリックします。
4. [データフロー オプションをステージにマッピングします]セクションで、[Read From DB]エ ントリを展開します。
Read From DBステージでSQLクエリに対して定義した変数が、ステージの他の属性ととも
に一覧表示されます。
5. 対応するチェックボックスを使用して、カスタマイズする変数を選択します。
6. [オプション ラベル]フィールドに、変数に関連する名前を入力します。
7. [デフォルト値]フィールドに、SQLクエリのwhere句で、選択された変数の代わりに使用す
る列名を入力します。または、where句の変数の代わりに使用する定数値を入力します。
例えば、Read From DBステージで定義された次のSQLクエリがあるとします。
select * from CUSTOMERS where #{condition1} > 28 and #{condition2} >
1200
テーブルCUSTOMERSの列AGEを変数condition1の[デフォルト値] として選択し、列
SALARYを変数condition2の[デフォルト値]として選択できます。
実行時に、クエリは次のように解釈されます。
select * from CUSTOMERS where AGE > 28 and SALARY > 1200
8. Read From DBステージでSQLクエリに挿入されたすべての変数に対して、ステップ5~7
を繰り返します。
9. [OK]をクリックします。
データフローを実行すると、カスタマイズされたクエリを用いて必要なデータが取得されます。
Job Executorのクエリ変数の設定
Spectrum™Job Executorがお使いのサーバー上にダウンロード済みであることを確認しま
す。
注:
1. ジョブのRead From DBステージのSQLクエリに含まれている変数のデフォルト値を定義す
るテキスト ファイルを作成します。
列名AGEを変数condition1のデフォルト値として割り当てるには、例えばvariables.txt
といった名前のテキスト ファイルを作成し、次の行をこのファイルに入れます。
@condition1=AGE
20などの定数値を変数condition1のデフォルト値として割り当てるには、次の行をこの ファイルに入れます。
@condition1=20
2. コマンド プロンプトでJob Executorを使用してジョブを実行する際に、引数-oの後に作成し たテキスト ファイルのパスを指定します。
例えば、テキスト ファイルvariables.txtに変数のデフォルト値が定義されたジョブ
ReadCustomerDataJobを実行するには、コマンド プロンプトで次のコマンドを実行しま
す。
java -jar jobexecutor.jar -h "localhost" -u "admin" -p "admin" -s
"8080" -j "ReadCustomerDataJob" -o "variables.txt"
Job Executorを使用してジョブを実行すると、カスタマイズされたクエリを用いて必要なデータ
が取得されます。
手順とコマンドライン構文については、『データフロー デザイナーズ ガイド』の「ジョブ の実行」を参照してください。
注:
Read From File
Read from Fileステージでは、ジョブまたはサブフローの入力ファイルを指定します。これをサー
ビスで使うことはできません。
データフローの入力としてXMLファイルを使いたい場合は、Read from FileではなくRead
from XMLステージを使用してください。入力として可変フォーマット ファイルを使いたい
場合は、Read from Variable Format Fileを使用してください。
注:
[ファイル プロパティ]タブ
説明 フィールド名
[ファイル名]フィールドで選択したファイルがEnterprise Designerを実行してい るコンピュータ上にあるか、Spectrum™Technology Platformサーバー上にある サーバ名
かを示します。ローカル コンピュータ上のファイルを選択した場合、サーバー名 はマイ コンピュータになります。サーバー上のファイルを選択した場合、サーバー 名はSpectrum™Technology Platformになります。
ファイルへのパスを指定します。省略記号ボタン(...)をクリックし、必要なファ イルを参照して選択します。
ファイル名
ワイルド カード文字を使用して、ディレクトリ内の複数のファイルからデータを 読み込むことができます。サポートされているワイルド カード文字は、*と?で す。例えば、*.csvと指定して、ディレクトリ内の拡張子.csvを持つすべての ファイルを読み込むことができます。複数のファイルを正常に読み込むには、各 ファイルが同じレイアウト(同じ位置に同じフィールド)を持つ必要があります。
[フィールド]タブで指定したレイアウトに一致しないレコードは、形式に誤りの
あるレコードとして扱われます。
説明 フィールド名
なお、Spectrum™Technology Platformサーバーを実行しているプラット フォームがUnixまたはLinuxの場合、これらのプラットフォームでファイ ル名およびパスの大文字と小文字が区別されることに注意してください。
注:
ファイル内のレコードのフォーマット。次のいずれかです。
レコード タイプ
ファイル内の各レコードが復帰/改行(CR/LF)などの行末(EOL) 文字で区切られ、レコード内の各フィールドの開始文字位置と終 了文字位置が固定しているテキスト ファイル。
行順次
ファイル内の各レコードの長さ(文字数)が一定で、レコード内の 各フィールドの開始文字位置と終了文字位置が固定しているテキ スト ファイル。
固定長
ファイル内の各レコードが復帰/改行(CR/LF)などの行末(EOL) 文字で区切られ、レコード内の各フィールドがカンマ(,)などの特 定の文字で区切られているテキスト ファイル。
区切り記号付 き
テキスト ファイルのエンコーディング。次のいずれかです。
文字エンコーディング
すべてのUnicode文字をサポートし、かつASCIIとの下位互換
性があります。UTFの詳細については、
unicode.org/faq/utf_bom.htmlを参照してください。
UTF-8
すべてのUnicode文字をサポートします。しかし、ASCIIとの
下位互換性はありません。UTFの詳細については、
unicode.org/faq/utf_bom.htmlを参照してください。
UTF-16
英語のアルファベット順に従う文字エンコーディング。
US-ASCII
ビッグエンディアンUTF-16エンコーディング(下位アドレスが 上位バイトとなるようにシリアル化)。
UTF-16BE
リトルエンディアンUTF-16エンコーディング(下位アドレスが 下位バイトとなるようにシリアル化)。
UTF-16LE
主として西ヨーロッパの言語で使われるASCII準拠の文字エン コーディング。Latin-1とも呼ばれます。
ISO-8859-1
主として南ヨーロッパの言語で使われるASCII準拠の文字エン コーディング。Latin-3とも呼ばれます。
ISO-8859-3
主としてトルコ語で使われるASCII準拠の文字エンコーディン グ。Latin-5とも呼ばれます。
ISO-8859-9
西ヨーロッパの言語を書くためのASCIIコード ページ。
CP850
説明 フィールド名
西ヨーロッパの言語を書くためのEBCDICコード ページ。
CP500
日本語のための文字エンコーディング。
Shift_JIS
NEC特殊文字、NEC選定IBM拡張文字、IBM拡張文字を含め たMicrosoftの拡張版Shift_JIS文字コード。
MS932
Latin-1文字セット全体を含むEBCDICコード ページ。
CP1047
区切り記号付きファイル内のフィールドを区切るのに使用する文字を指定します。
例えば、次のレコードでは(|)記号がフィールド区切り文字として使われていま す。
7200 13TH ST|MIAMI|FL|33144
フィールド区切り文字
デフォルトで、フィールド区切り文字として定義できるのは次の文字です。
• スペース
• タブ
• カンマ(,)
• ピリオド(.)
• セミコロン(;)
• パイプ(|)
これ以外の文字がフィールド区切り文字として使われているファイルについては、
省略記号ボタン(...)をクリックし、別の文字を区切り文字として選択してくださ い。
区切り記号付きファイル内のテキスト値を囲むのに使用する文字。例えば、次の レコードでは二重引用符(")がテキスト修飾子として使われています。
"7200 13TH ST"|"MIAMI"|"FL"|"33144"
テキスト修飾子
デフォルトで、テキスト修飾子として定義できるのは次の文字です。
• 一重引用符(')
• 二重引用符(")
これ以外の文字がテキスト修飾子として使われているファイルについては、省略 記号ボタン(...)をクリックし、別の文字をテキスト修飾子として選択してくださ い。
説明 フィールド名
順次ファイルまたは区切り記号付きファイル内のレコードを区切るのに使用する 文字を指定します。[デフォルトのEOLを使用]チェック ボックスをオンにする レコード区切り文字
と、このフィールドは使用できません。デフォルトで使用できるレコード区切り 文字の設定は次のとおりです。
改行(LF)文字でレコードを区切ります。これはUnixシス テムの標準のレコード区切り文字です。
Unix (U+000A)
復帰(CR)文字でレコードを区切ります。これはMacintosh システムの標準のレコード区切り文字です。
Macintosh (U+000D)
復帰改行(CR+LF)でレコードを区切ります。これは
Windowsシステムの標準のレコード区切り文字です。
Windows (U+000D U+000A)
これ以外の文字がレコード区切り文字として使われているファイルについては、
省略記号ボタン(...)をクリックし、別の文字をレコード区切り文字として選択し てください。
Spectrum™Technology Platformサーバーが実行されているオペレーティング シ ステムのデフォルトの行末(EOL)文字をファイルのレコード区切り文字として使 用します。
デフォルトのEOLを使用
ファイルのEOL文字がサーバーのオペレーティング システムで使われているデ フォルトのEOL文字と異なる場合は、このオプションをオンにしないでくださ い。例えば、ファイルでWindowsのEOLが使われていて、サーバーの動作プラッ トフォームがLinuxの場合は、このオプションをオンにしないでください。代わ りに、[レコード区切り文字]フィールドで[Windows]オプションを選択します。
固定長ファイルでは、個々のレコードの文字数を指定します。
レコード長
行順次ファイルでは、ファイル内の最も長いレコードの長さ(文字数)を指定しま す。
区切り記号付きファイルの先頭レコードの内容がデータではなくヘッダ情報であ るかどうかを指定します。次は、先頭レコードのヘッダ行の例です。
"AddressLine1"|"City"|"StateProvince"|"PostalCode"
"7200 13TH ST"|"MIAMI"|"FL"|"33144"
"One Global View"|"Troy"|"NY"|12180
最初の行はヘッダ レコード