SSIS:每天将.csv文件从共享文件夹移动到oledb目的地并发送电子邮件通知

时间:2012-03-24 22:45:38

标签: ssis

我是SSIS的新手,我正在一个关键的截止日期工作,如果有人可以帮助我,那将会很棒。 我在服务器位置//共享/源/文件中有一个共享文件夹,每天会加载一个文件,并且每月会再加载一个文件,这两个文件都具有相同的扩展名.csv

任何人都可以帮我移动文件将 A.csv B.csv 发送到相应的表格,更重要的是第1天的文件名将是A 2011-09 -10.csv和on day2在源文件中将是A 2011-09-11.csv ..这个文件必须移动到表A并且文件B.csv必须移动到相应的目标表b,一次后移动文件必须将此文件移动到存档文件夹,我们还需要向用户发送tabl-A已加载1000行并且成功同样表-b load是sucesfull以及日期和时间。 注意:源文件将在每天凌晨5点在文件夹中自动更新。

1 个答案:

答案 0 :(得分:2)

首先,创建一个包含文件路径名的变量。 其次,创建一个脚本任务,检查文件是否可用。 脚本任务如下:

        public void Main()
    {
        string FileName = String.Format("{0}.csv", DateTime.Now.ToString("yyyy-MM-dd"));

        if (System.IO.File.Exists("\\Shared\\Path\\" + FileName))
        {
            Dts.Variables["FileName"].Value = FileName;
            Dts.TaskResult = (int)ScriptResults.Success;
        }
        else
        {
            Dts.TaskResult = (int)ScriptResults.Failure;
        }

    }

在脚本任务之后,创建一个数据流任务。

  1. 在页面底部的Connection Manager中创建一个指向平面文件的连接。在“平面文件连接管理器编辑器”弹出窗口中,将“文件名”设置为您要上载的文件(这将动态更新,因此其实际值不相关)。在新Connection的属性中,打开“表达式”弹出窗口。选择ConnectionString属性,并将表达式设置为指向路径和FileName变量:" \\ Shared \\ Path \\" + @ [User :: FileName]。
  2. 创建一个平面文件源,并使用我们刚创建的连接作为平面文件的连接。
  3. 创建目标数据流项目,并将其指向您要插入数据的数据库。
  4. 从此处创建一个在您希望运行时运行的SQL Server作业。这个工作应该执行你刚刚创建的包。