フラット ファイルを受け取り、そのコンテンツをステージング テーブルにロードする SSIS パッケージのセットアップに忙しくしています。そこから、そのファイルのファイル名を取得し、データ行の 1 つと共に別のテーブルのフィールドに保存する必要があります。ストアド プロシージャを実行する SQL 実行タスクを使用して行うデータの読み込み。この手順では、ファイル名を入力パラメーターとして受け取ります (そのテーブルに書き込むことができるようにするためです)... SQL タスクを実行する前に、次のことを行うスクリプト タスクを追加しました。
public void Main()
{
string inputFolder;
string fileName;
inputFolder = Dts.Variables["SourceFolder"].Value.ToString();
// MessageBox.Show(inputFolder);
string[] foundFiles = null;
foundFiles = System.IO.Directory.GetFiles(inputFolder);
if (foundFiles.Length > 0)
{
fileName = foundFiles[0];
Dts.Variables["ProcessedFileName"].Value = System.IO.Path.GetFileName(fileName);
// MessageBox.Show(fileName);
// MessageBox.Show(System.IO.Path.GetFileName(fileName));
}
Dts.TaskResult = (int)ScriptResults.Success;
}
"ProcessedFileName" 変数は、"SourceFolder" 変数と同様に、SSIS パッケージのグローバル変数です。
直接入力実行を使用して設定した実行 SQL タスク:
DECLARE @StoredProcedure varchar(100) = ?;
DECLARE @ProcessedFileName varchar(100) = ?;
EXEC ? ?;
パラメータ マッピングは、変数 StoredProcedure および ProcessedFileName に対するものです。
問題は、これを実行すると、「1 つ以上の必須パラメーターに値が指定されていません」と表示されることです。これはなぜですか?