目次

Search

  1. はじめに
  2. トランスフォーメーションに関する作業
  3. アグリゲータトランスフォーメーション
  4. カスタムトランスフォーメーション
  5. カスタムトランスフォーメーション関数
  6. データマスキングトランスフォーメーション
  7. データマスキングの例
  8. 式トランスフォーメーション
  9. エクスターナルプロシージャトランスフォーメーション
  10. フィルタトランスフォーメーション
  11. HTTPトランスフォーメーション
  12. ID解決トランスフォーメーション
  13. Javaトランスフォーメーション
  14. JavaトランスフォーメーションAPIのリファレンス
  15. Java式
  16. Javaトランスフォーメーションの例
  17. ジョイナトランスフォーメーション
  18. ルックアップトランスフォーメーション
  19. ルックアップキャッシュ
  20. 動的ルックアップキャッシュ
  21. ノーマライザトランスフォーメーション
  22. ランクトランスフォーメーション
  23. ルータトランスフォーメーション
  24. シーケンスジェネレータトランスフォーメーション
  25. ソータトランスフォーメーション
  26. ソース修飾子トランスフォーメーション
  27. SQLトランスフォーメーション
  28. マッピングにおけるSQLトランスフォーメーションの使用
  29. ストアドプロシージャトランスフォーメーション
  30. トランザクション制御トランスフォーメーション
  31. 共有体トランスフォーメーション
  32. 構造化されていないデータのトランスフォーメーション
  33. アップデートストラテジトランスフォーメーション
  34. XMLトランスフォーメーション

トランスフォーメーションガイド

トランスフォーメーションガイド

エラー行について

エラー行について

Integration Serviceによって接続エラーまたは構文エラーが検出されると、行エラーが返されます。SQLトランスフォーメーションには、エラーテキストを出力する以下のデフォルトのポートがあります。
  • SQLError。
    SQLトランスフォーメーションがクエリモードで実行される場合に、データベースエラーを返します。
  • ScriptError。
    SQLトランスフォーメーションがスクリプトモードで実行される場合に、データベースエラーを返します。
SQLクエリに構文エラーがある場合、エラーポートにはデータベースからのエラーテキストが含まれます。たとえば、以下のSQLクエリでは、Oracleデータベースからの行エラーが生成されます。
SELECT Product_ID FROM Employees
EmployeesテーブルにはProduct_IDはありません。Integration Serviceによって1行が生成されます。SQLErrorポートに、以下のエラーテキストが1行で含まれます。
ORA-0094: “Product_ID”: invalid identifier Database driver error... Function Name: Execute SQL Stmt: SELECT Product_ID from Employees Oracle Fatal Error
クエリに複数の文が含まれ、SQLエラー時でも処理を継続するようにSQLトランスフォーメーションを設定した場合、SQLトランスフォーメーションでは、1つのクエリ文に対してデータベースから行が返されますが、別のクエリ文に対してデータベースエラーが返されることがあります。SQLトランスフォーメーションは、データベースエラーを別の行に返します。
パススルーポートまたはNumRowsAffectedポートを設定した場合、SQLトランスフォーメーションは各ソース行について最低1行のデータを返します。クエリから行が返されない場合、SQLトランスフォーメーションはパススルーデータとNumRowsAffected値を返しますが、出力カラムにはNULL値を返します。NULL値の行を削除するには、フィルタトランスフォーメーション経由で出力行を渡します。
以降の表では、SQLトランスフォーメーションによって返される出力行について、クエリ文の種類ごとに説明します。
以下の表では、UPDATE、INSERT、またはDELETEの各クエリ文について、SQLトランスフォーメーションが生成する行を示します。
設定されているNumRowsAffectedポートまたはパススルーポート
SQLError
出力される行
いずれのポートも設定されていません。
いいえ
ゼロ行。
いずれのポートも設定されていません
はい
SQLErrorポートにエラーを含む1行
どちらかが設定済み
いいえ
クエリ文ごとに、NumRowsAffectedまたはパススルーのカラムデータを含む1行。
どちらかが設定済み
はい
SQLErrorポート、NumRowsAffectedポート、またはパススルーポートのデータにエラーを含む1行。
以下の表では、SELECT文についてSQLトランスフォーメーションが生成する出力行の数を示します。
設定されているNumRowsAffectedポートまたはパススルーポート
SQLError
出力される行
いずれのポートも設定されていません
いいえ
ゼロ以上の行。各SELECT文で返された行によって異なります。
いずれのポートも設定されていません
はい
正常に終了した文の出力行の合計よりも大きい1行。最後の行には、SQLErrorポートにエラーが含まれます。
どちらかが設定済み
いいえ
1つ以上の行。各SELECT文で返された行によって異なります。
  • NumRowsAffectedが有効な場合、各行には値0のNumRowsAffectedカラムが含まれます。
  • パススルーポートが設定されている場合、各行にはパススルーカラムデータが含まれます。クエリによって複数の行が返された場合、パススルーカラムデータは各行について重複して生成されます。
どちらかが設定済み
はい
1つ以上の行。各SELECT文で返された行によって異なります。最後の行には、SQLErrorポートのエラーが含まれます。
  • NumRowsAffectedが有効な場合、各行には値0のNumRowsAffectedカラムが含まれます。
  • パススルーポートが設定されている場合、各行にはパススルーカラムデータが含まれます。クエリによって複数の行が返された場合、パススルーカラムデータは各行について重複して生成されます。
以下の表では、CREATE、DROP、TRUNCATEなどのDDLクエリについて、SQLトランスフォーメーションが生成する出力行の数を示します。
設定されているNumRowsAffectedポートまたはパススルーポート
SQLError
出力される行
いずれのポートも設定されていません
いいえ
  • ゼロ行。
いずれのポートも設定されていません
はい
  • SQLErrorポートのエラーを含む1行。
どちらかが設定済み
いいえ
  • 値0のNumRowsAffectedカラムおよびパススルーカラムデータを含む1行
どちらかが設定済み
はい
  • SQLErrorポートのエラー、値0のNumRowsAffectedカラム、およびパススルーカラムデータを含む1行