如何使用变量引用SSIS脚本中某一行的列?

问题描述:

编辑:我正在关闭此,并再次发布更好的描述。如何使用变量引用SSIS脚本中某一行的列?

我正在将一些医疗诊断从平面文件加载到临时表中。每个诊断都有三个字段:Diagnosis_Code,Diagnosis_Date和Diagnosis_Type。该文件总共包含9个诊断,总共27个字段(Diagnosis01_Date,Diagnosis02_Date等),登台表中的字段名称与文件中的字段名称相匹配。

使用脚本组件,我需要对这些值中的某些值执行功能,并希望在循环中执行它,而不是将它写入同一个事物9次。如果我在VB中的记录工作,我会写这样的事情在Input0_ProcessInputRow子:

For i = 1 to 9 
    row.("Diagnosis0"+ i +"_Date").Value = diagnosisDate 
next i 

但行的列是不是一个集合,我不能找到一种方法,参考他们的名字。有没有办法循环访问列并在SSIS脚本中修改它们?

编辑:我想要做的是,在我的脚本组件中,替换这一系列的重复任务:

row.Diagnosis01 = diagnosisDate 
row.Diagnosis02 = diagnosisDate 
.... 
row.Diagnosis09 = diagnosisDate 

随着循环。

+0

你会怎么办这取决于数据。它是否被划定?固定宽度? –

+0

数据是管道分隔的。 – DataWriter

+0

你可以包含一个数据样本吗?另外,这是数据流任务中的脚本组件还是脚本任务?该任务的结果/输出是什么? –

您可以使用String.Split实现这一目标,在读取文件的一行,时间:

string line = row; // 'row' will be a line of data from your file 

string[] fields = line.Split('|'); 

for (int i = 0; i < fields.Length; i++) 
{ 
    // perform whatever logic you need to on fields[i] 
} 
+0

现在,我的脚本组件正在使用Input0_ProcessInputRow子句,该子句一次处理一行并在其中设置值:row.Dx1 = myDate,row.Dx2 = myDate ...我在哪里应用此方法? – DataWriter

+0

我刚刚添加了一个编辑来澄清我尝试做什么,如果有帮助的话。 – DataWriter