我已经创建了5个ssis包,我需要使用文件观察程序来执行它们

本文关键字:观察 文件 程序 执行 创建 5个 ssis | 更新日期: 2023-09-27 18:21:00

我已经创建了5个ssis包,我需要使用文件观察器来执行它们,该观察器监视文件夹中的文件并执行适当的包。文件名如下:*_201307.txt、**_201308.txt等,会随月份变化。这是我的代码

private void OnChanged(object source, FileSystemEventArgs e)
{
    // Specify what is done when a file is changed, created, or deleted.
    //Console.WriteLine("File: " & e.FullPath & " " & e.ChangeType)
    //logger.Info("Realtime file watcher activity: change type [" + e.ChangeType + "] file [" + e.Name + "]");
    Console.WriteLine("Realtime file watcher activity: change type [" + e.ChangeType + "] file [" + e.Name + "]");
    if (_watcherActivityList.Count > 10000)
    {
        //logger.Warn("Realtime file watcher activity list is over 10,000 items, clearing list");
        _watcherActivityList.Clear();
    }
    else
    {
        //under 10,000 items
    }
    _watcherActivityList.Add(e.ChangeType + "|" + e.FullPath);
    if (e.ChangeType == WatcherChangeTypes.Created)
    {
        /*** THIS IS WHERE YOU'LL CALL YOUR SSIS PACKAGE ***/
    }

有人能在这里发布代码吗/*这是你调用SSIS包的地方*/

我已经创建了5个ssis包,我需要使用文件观察程序来执行它们

我建议您使用以下方法之一:

  1. 创建一个存储过程,并使用文件名作为参数对其进行调用。在存储过程中,将文件名放入表中,并调整SSIS包以从该表中读取文件名。将文件名写入表后,使用sp_start_job命令从过程中启动SSIS包
  2. 将文件名写入文本文件,然后调整SSIS包以从中读取文件名。然后只需从Process启动SSIS包
  3. Process启动SSIS包,并提供一个用户变量作为参数。通话内容如下:

dtexec/file SSISPackage.dtsx/Set''Package.Variables[User::Filename].Properties[Value]''"myFile.txt''"