SSIS Components for SFTP

Build 20.0.7587

ストアドプロシージャの呼び出し

変換元コンポーネントやスクリプトコンポーネントの中でストアドプロシージャを実行できます。

変換元コンポーネントからのストアドプロシージャの呼び出し

次の手順に従って、SQL EXEC キーワードでストアドプロシージャを実行します。

  1. データフロータスク内のコンポーネントをダブルクリックして、エディターを開きます。
  2. [Data Access Mode]メニューで[SQL コマンド]を選択します。 ストアドプロシージャステートメントのクエリ構文は、以下に示す標準形式に従います。
    EXECUTE my_proc @first = '1', @second = '2', @third = '3';
    
    EXEC my_proc @first = '1', @second = '2', @third = '3';

    EXECUTE とEXEC は同じ意味で使用できます。クエリをパラメータ化する方法については、変換元コンポーネントの使用 を参照してください。

スクリプトコンポーネントからのストアドプロシージャの呼び出し

以下の章では、スクリプトコンポーネントのストアドプロシージャを呼び出す方法について説明します。

スクリプトコンポーネントの追加

ツールボックスからデータフローにスクリプトコンポーネントを追加して、スクリプトコンポーネントのタイプを選択します。

  • 変換元スクリプトコンポーネントは、出力のみを持ちます。
  • 変換先スクリプトコンポーネントは、入力のみを受け入れます。
  • 変換スクリプトコンポーネントは、入力カラムを受け入れ、出力カラムを生成します。

スクリプトの編集前の操作

コンポーネントをデータフローに追加したら、コンポーネントをダブルクリックして[Script Transformation Editor]を開き、次の手順に従います。

  1. [入力および出力]タブですべての入力カラムと出力カラムを設定します。各出力に適切なデータ型を設定してください。データ型は、右側のカラムの[データ型のプロパティ]に示されます。
  2. [スクリプト]タブのReadOnlyVariables またはReadWriteVariables リストに、SSIS パッケージ変数を追加します。読み出し/書き込み変数は、スクリプトのPostExecute() メソッドでのみ設定することができます(以下のサンプルスクリプトを参照してください)。
  3. コードの言語(C#またはVisual Basic)を選択します。
これで、スクリプトを編集する準備が整いました。[スクリプトの編集]ボタンをクリックします。以下のサンプルスクリプトセクションは、標準的なストアドプロシージャ呼び出しを示します。

スクリプトの編集後の操作

コードの編集が終了したら、[エラー一覧]ウィンドウでエラーがあるかどうかを確認し、必要に応じてエラーを解決します。これで、スクリプトコンポーネントを使用する準備が整いました。

サンプルスクリプト

次の例は、スクリプトコンポーネントを使用してDownload ストアドプロシージャを呼び出す方法を示していますここでは、CData.SSIS2020.FTP.dll への参照を追加する必要があります。これは、インストールフォルダの[lib]サブフォルダにあります。

C#

using System.Data.CData.FTP;
...
public override void CreateNewOutputRows()
{
  string connectionString = "RemoteHost=MyFTPServer;";
  using (FTPConnection connection = new FTPConnection(connectionString)) {
    FTPCommand cmd = new FTPCommand("Download", connection);
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add(new FTPParameter("@RemoteFile", "test.txt"));
    // Add other parameters as needed ...

    FTPDataReader rdr = cmd.ExecuteReader();
    while (rdr.Read()) {
      Output0Buffer.AddRow();
      //Add output columns as necessary, for example:
      //Output0Buffer.Name = rdr["Name"].ToString();
      //...
      Console.WriteLine();
    }
  }
}

public override void PostExecute()
{
  //If you want to set any package variables, it must be done in this function
  //You will need to have already added these ReadWriteVariables in the Script Editor
  //For example:
  Variables.Success = true;
}

VB.NET

Imports System.Data.CData.FTP
...
Public Overrides Sub CreateNewOutputRows()
  Dim connectionString As String = "RemoteHost=MyFTPServer;"
  Using connection As New FTPConnection(connectionString)
    Dim cmd As New FTPCommand("Download", connection)
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Parameters.Add(New FTPParameter("@RemoteFile", "test.txt"))
    ' Add other parameters as needed ...

    Dim rdr As FTPDataReader = cmd.ExecuteReader()
    While rdr.Read()
      Output0Buffer.AddRow()
      'Add output columns as necessary, for example:
      'Output0Buffer.Name = rdr["Name"].ToString()
      '...
      Console.WriteLine()
    End While
  End Using
End Sub

Public Overrides Sub CreateNewOutputRows()
  'If you want to set any package variables, it must be done in this function
  'You will need to have already added these ReadWriteVariables in the Script Editor
  'For example:
  Variables.Success = True
End Sub

Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 20.0.7587