クライアントインターフェイスガイド > TDV用TIBCOSSISコンポーネント > SSISコンポーネントの使用 > ストアドプロシージャの呼び出し
 
ストアドプロシージャの呼び出し
ストアドプロシージャは、スクリプトコンポーネントだけでなくソースコンポーネントでも実行できます。
ソースコンポーネントからストアドプロシージャを呼び出す
SQL EXECキーワードを使用してストアドプロシージャを実行するには、以下の手順に従います。
1. データフロータスクでコンポーネントをダブルクリックして、エディターを開きます。
2. [データアクセスモード]メニューで、[SQLコマンド]を選択します。ストアドプロシージャステートメントのクエリ構文は、以下に示す標準形式に従います。
 
EXECUTE my_proc @first = '1', @second = '2', @third = '3';
 
EXEC my_proc @first = '1', @second = '2', @third = '3';
 
EXECUTEとEXECは同じ意味で使用できます。クエリをパラメータ化する方法については、ソースコンポーネントの使用を参照してください。
スクリプトコンポーネントからストアドプロシージャを呼び出す
次のセクションでは、スクリプトコンポーネントでストアドプロシージャを呼び出す方法を示します。
スクリプトコンポーネントを追加する
ツールボックスからデータフローにスクリプトコンポーネントを追加し、スクリプトコンポーネントのタイプを選択します。
ソーススクリプトコンポーネントには出力のみが含まれます。
宛先スクリプトコンポーネントは入力のみを受け入れます。
変換スクリプトコンポーネントは、入力列を受け入れ、出力列を生成します。
スクリプトを編集する前に
コンポーネントをデータフローに追加した後、コンポーネントをダブルクリックしてスクリプト変換エディターを開き、以下の手順に従います。
1. [入力と出力]タブですべての入力列と出力列を構成します。各出力に適切なデータタイプを設定してください。これは、右側の列の[データタイプのプロパティ]にあります。
2. スクリプトタブのReadOnlyVariablesまたはReadWriteVariablesリストにSSISパッケージ変数を追加します。読み取り/書き込み変数は、スクリプトのPostExecuteメソッドでのみ設定できることに注意してください(以下のスクリプト例を参照)。
3. コーディングする言語を選択します:C#またはVisualBasicのいずれか。
これで、スクリプトの編集を開始する準備が整いました。 [スクリプトの編集]ボタンをクリックします。以下のサンプルスクリプトセクションは、一般的なストアドプロシージャ呼び出しを示しています。
スクリプトを編集した後
コードを編集した後、[エラーリスト]ウィンドウにエラーがあるかどうかを確認し、必要に応じて解決します。これで、スクリプトコンポーネントを使用する準備が整いました。
スクリプト例
以下の例は、スクリプトコンポーネントを使用してSearchSuppliersストアドプロシージャを呼び出す方法を示しています。 TIBCO.SSIS2019.TDV.dllへの参照を追加する必要があります。これは、インストールフォルダーのlibサブフォルダーにあります。
C#
using System.Data.TDVClient;
...
public override void CreateNewOutputRows()
{
string connectionString = "Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword";
using (TDVConnection connection = new TDVConnection(connectionString)) {
TDVCommand cmd = new TDVCommand("SearchSuppliers", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new TDVParameter("@Country", "US"));
// Add other parameters as needed ...
TDVDataReader 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.TDVClient
...
Public Overrides Sub CreateNewOutputRows()
Dim connectionString As String = "Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword"
Using connection As New TDVConnection(connectionString)
Dim cmd As New TDVCommand("SearchSuppliers", connection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New TDVParameter("@Country", "US"))
' Add other parameters as needed ...
Dim rdr As TDVDataReader = 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