変換元コンポーネントの使用
データソースへの接続の確立 後、CData SAP HANA 変換元コンポーネントを使用してデータフロータスクにデータをプルできます。
変換元コンポーネントでSAP HANA データをクエリ
下記の手順に従ってSAP HANA に接続し、データを取得し、ワークフロー内の他のコンポーネントにデータを提供します。- SSIS ツールボックスで、CData SAP HANA 変換元コンポーネントをデータフロータスクにドラッグします。
- CData SAP HANA 変換元コンポーネントをダブルクリックします。CData SAP HANA 変換元エディターが開きます。
- Connection Manager メニューで、有効なCData SAP HANA 接続マネージャーを選択するか、利用可能な接続マネージャーがない場合はNew... ボタンから新規作成します。
- Data access mode ドロップダウンメニューでアクセスモードを選択します。GUI を使用してテーブルやビューを選択する場合は、Table or View を選択します。SQL command text ボックスでカスタムSQL ステートメントを作成するには、SQL command を選択します。
- Columns タブを選択し、出力カラムの名前を任意に変更します。
パラメータ化クエリの使用
パラメータ化されたステートメントは、動的にクエリを実行してSQL インジェクション攻撃を軽減する効率的な方法を提供します。カスタムSQL コマンドを使用する場合、変換元コンポーネントにはSet Query Parameters ダイアログを起動するParameters ボタンが用意されています。このインターフェースは次のカラムを含みます。- Parameters: カスタムSQL コマンドボックスのin-query パラメータのエイリアス。エントリは、クエリに存在する位置パラメータ(? で表される)と名前付きパラメータ(@ParameterName 形式)ごとに生成されます。
- ColumnGlobalVariables: in-query パラメータをマッピングしたいシステムレベルまたはパッケージレベルのパラメータ。in-query パラメータは、マップされたパラメータの値に解決さ れます。
Parameters オプションを使用するには、クエリにパラメータが含まれている必要があり、位置パラメータとして定義することも名前付きパラメータとして定義することもできます。
- 位置パラメータ:Set Query Parameters ダイアログでパラメータマッピングを設定する場合、Parameters カラムの名前はクエリ内のそのパラメータのインデックス(1から始まる)である必要があります。以下がクエリの例です。
SELECT * FROM Table WHERE FirstName = ? AND Date > ?
ここで、Parameters カラムの名前は、'FirstName' と'Date' をそれぞれ'1'と'2'に設定する必要があります。
- 名前付きパラメータ:Set Query Parameters ダイアログでパラメータマッピングを設定する場合、Parameters カラムの名前は、前の'@' 記号を除いたクエリ内のパラメータ名と正確に一致する必要があります。以下がクエリの例です。
SELECT * FROM Table WHERE FirstName = @FirstName AND Date > @Date
ここでは、Parameters カラムの名前は、'FirstName' および'Date' に設定する必要があります。
式ビルダーでの動的クエリの構築
変換元コンポーネントを設定したら、SSIS 式ビルダーを使用して、変換元コンポーネントが実行時に実行するSQL ステートメントにアクセスできます。
本製品 は、これらの動的に定義されたクエリをランタイムで構築し実行します。
- SSIS デザイナーの制御フロータブをクリックします。
- プロパティペインでExpressions プロパティの値ボックスをクリックし、ボックスに表示される'...' ボタンをクリックします。プロパティ式エディターウィンドウが表示されます。
- [プロパティ式エディター]ウィンドウが表示されたら、[プロパティ]ボックス内の空の行をクリックし、ドロップダウンメニューから CDataSAP HANA Source コンポーネントのSQLStatement プロパティを選択します。
- SQLStatement プロパティを選択した行の最後にある "..." ボタンをクリックします。式ビルダーウィンドウが表示されます。
- 式ボックスで、実行時に使用可能な変数を入力パラメータとして使用する新しいSQL コマンドを作成できます。この式は引用符で囲む必要があります。次に例を示します。
"SELECT * FROM Table WHERE FirstName = '" + @[User::Name] + "' AND Date > '" + (DT_WSTR, 50) DATEADD("day", -30, GETDATE()) + "'"