如何使用SSIS

时间:2017-11-13 13:04:06

标签: sql-server ssis text-files metadata ssis-2014

我是SSIS的新手,非常感谢任何帮助!

我需要导入逗号分隔的文本文件。 文件中的行具有不同的布局。 第一列的值指定布局。

例如:

布局1:姓名,姓氏,年龄,身份证

布局2:ID,薪水

因此列名和数据类型完全不同。

有没有办法在不使用SSIS中的脚本任务的情况下导入这样的文件?

1 个答案:

答案 0 :(得分:1)

您可以使用SSIS工具箱/其他来源的平面文件源。有关详细信息,请查看https://docs.microsoft.com/en-us/sql/integration-services/connection-manager/flat-file-connection-manager 编辑:你改变了问题后,我感觉更好。脚本任务是唯一的解决方案,因为您必须构建逻辑。

public override void CreateNewOutputRows()
{
    // Create the StreamReader object to read the input file
    System.IO.StreamReader reader = new System.IO.StreamReader(this.Variables.vInputFilename);

    // Loop through the file to read each line
    while (!reader.EndOfStream)
    {
        // Read one line
        string line = reader.ReadLine();

        // Break the file apart into atomic elements
        string[] items = line.Split('|');

        /*
            Each line should match one of three record types. When matched to
            the correct type, a new row in that output will be created and the
            columns from the file will be written to the appropriate output cols
        */

        // Record type 1 is Manager
        if (items[0] == "Layout 1")
        {
            OutputBuffer0.AddRow();

        }

        // Layout 2
        else if (items[0] == "Layout 2")
        {
            OutputBuffer1.AddRow();

        }
    }
}

然后根据输出你连接相关的表。让我知道它是否有效:)