温馨提示:本文翻译自stackoverflow.com,查看原文请点击:sql - conditional split based on column names but not values

sql - 基于列名而不是值的条件拆分

发布于 2020-03-27 11:45:16

我必须构建一个SSIS包,在其中将根据列名加载数据。我有7个平面文件,必须根据列名将这些文件加载​​到SQL Server中的2个表中。具有列名称(名字,姓氏,电话号码)的平面文件应转到表A。具有列名称(名字,姓氏,单元格编号)的平面文件应转到表B。拆分应基于列名而不是列值。我不是.net人。

查看更多

查看更多

提问者
SivaSagar Kalagara
被浏览
15
KeithL 2019-07-04 01:10
  1. 使用foreach循环遍历文件,将完整文件路径保存为变量名。

  2. 使用脚本任务来确定文件是用于手机还是普通手机。注意:文件路径也可能是foreach循环中的变量

    string readingLine;
    
    Using(System.IO.StreamReader readingFile = new System.IO.StreamReader(filePath))
    {
       readingLine = readingFile.ReadLine();
    }
    if(readingLine.Contains("Cell") //It would be best to use the full column name with a comma to avoid names with Cell in it to false trigger a true result
    {
       Dts.Variables("PhoneType").Value = "Cell";
    {
    else
    {
       Dts.Variables("PhoneType").Value = "Phone";
    }
    
  3. 添加数据流

  4. 阅读平面文件跳过标题行。
  5. 添加派生列以从变量添加电话类型
  6. 加载到表格

完成此操作后,您可以为所需的输出创建视图。

发布
问题

分享
好友

手机
浏览

扫码手机浏览