【问题标题】:I have created 5 ssis packages and i need to execute them by using file watcher我已经创建了 5 个 ssis 包,我需要使用文件观察器来执行它们
【发布时间】:2013-07-04 05:30:58
【问题描述】:

我已经创建了 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 包的地方*/

【问题讨论】:

标签: c# ssis


【解决方案1】:

我会向您推荐以下方法之一:

  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\"

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2020-10-28
    相关资源
    最近更新 更多