SQLトランスフォーメーションを使用したSQLクエリとストアドプロシージャの処理 Microsoft Azure Synapse SQLマッピングのミッドストリームでSQLクエリとストアドプロシージャを処理するようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションを追加するときは、データベース接続と、トランスフォーメーションが処理するSQLのタイプを定義します。
詳細モードのマッピングについては、SQLトランスフォーメーションを設定できません。
SQLトランスフォーメーションは、次のタイプのSQL文を処理できます。
ストアドプロシージャ Microsoft Azure Synapse SQLのストアドプロシージャを呼び出すようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションを作成するには、ストアドプロシージャがMicrosoft Azure Synapse SQLデータベースに存在している必要があります。SQLトランスフォーメーションは、ストアドプロシージャを処理する場合、入力パラメータをストアドプロシージャに渡します。ストアドプロシージャは値をトランスフォーメーションの出力フィールドに返します。 SQLクエリ SQLエディタで定義した入力済みクエリを処理するようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションはクエリを処理し、行を返します。SQLトランスフォーメーションは、基になるデータベースからエラーが発生した場合、またはユーザー構文にエラーがある場合でもエラーを返します。 注: 保存済みクエリタイプは使用できません。
SQLクエリとストアドプロシージャの詳細については、データ統合のドキュメントにある「トランスフォーメーション 」を参照してください。
SQLトランスフォーメーションの設定 マッピングに、データフローのユーザーIDが含まれています。ユーザーIDとともにユーザー名を含める必要があるとします。ユーザーIDをデータベースのユーザー名とマッチングするストアドプロシージャがあります。マッピングにSQLトランスフォーメーションを追加し、そのストアドプロシージャを選択して、ユーザーID受信フィールドをストアドプロシージャのユーザーID入力フィールドとマッピングします。Microsoft Azure Synapse SQLマッピングにSQLトランスフォーメーションを追加します。
[出力フィールド]タブにSQLトランスフォーメーションがあるかチェックし、SQLトランスフォーメーションにユーザー名フィールドが含まれていることを確認します。マッピングを実行すると、ユーザー名の値がユーザーIDとともに返されます。
この例は、Microsoft Azure Synapse SQLのストアドプロシージャを呼び出すSQLトランスフォーメーションを設定するために必要なタスクを示しています。
1 SQLトランスフォーメーションの名前と説明を入力します。2 [受信フィールド] タブで、トランスフォーメーションに含めるデータを決定するフィールドルールを定義します。3 SQLトランスフォーメーションの[プロパティ]パネルで[SQL] タブをクリックします。4 [SQL] タブで、次のタスクを実行します。a データベースへの接続を選択します。接続を選択するか、パラメータを使用することができます。b SQLタイプを[ストアドプロシージャ] に設定します。c [選択] をクリックしてデータベースからストアドプロシージャを選択するか、呼び出すストアドプロシージャの正確な名前を入力します。ストアドプロシージャ名では大文字と小文字が区別されます。
注: マッピングが開いている状態で新しいストアドプロシージャをデータベースに追加すると、新しいストアドプロシージャは使用可能なストアドプロシージャのリストに表示されません。リストを更新するには、マッピングを閉じてから再度開きます。
5 [フィールドマッピング]タブで、選択したストアドプロシージャの入力フィールドに受信フィールドをマッピングする方法を指定します。6 要件に応じて、トランスフォーメーションに詳細プロパティを定義します。SQL入力クエリとしてSQLタイプを使用してSQLトランスフォーメーションを設定する場合は、データ統合のヘルプの「トランスフォーメーション 」を参照してください。
SQLトランスフォーメーションのルールとガイドライン マッピングでSQLトランスフォーメーションを設定するときは、次のルールおよびガイドラインを考慮してください。
• RETURN_VALUEパラメータは、Microsoft Azure Synapse SQLコネクタには適用されません。 • ストアドプロシージャは、整数値のみを含む出力フィールドを返します。例えば、int、bigint、tinyint、smallint、およびbitデータ型のフィールドが出力フィールドとして返されます。 • ストアドプロシージャにdatetimeoffset、binary、またはvarbinaryデータ型の入力フィールドを含めることはできません。 • Microsoft Azure Synapse SQLでストアドプロシージャを呼び出すようにマッピングを設定する場合は、スキーマのオーバーライドを設定しないでください。スキーマ名のオーバーライドを指定すると、Secure Agentはストアドプロシージャからのメタデータの取得に失敗します。• 名前にUnicode文字が含まれているストアドプロシージャから読み取ることはできません。マッピングはSQLコンパイルエラーで失敗します。• SQLトランスフォーメーションで複数のSQLクエリを指定しないでください。複数のSQLクエリを使用したマッピングは失敗します。• 入力したクエリからストアドプロシージャを呼び出すことはできません。• SQLトランスフォーメーションで接続をパラメータ化する場合は、次の手順を実行します。1 SQLトランスフォーメーションに有効なパラメータ化されていない接続を選択します。2 ストアドプロシージャまたはSQLクエリを設定します。3 接続をパラメータ化された接続に変更します。• SQLクエリにパラメータ化された接続を使用する場合、新しい出力フィールドを追加することはできません。 • 接続とSQLクエリが異なるスキーマを指している場合、エージェントはSQLクエリで指定されたスキーマを考慮します。