Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ssis中将文件名变量拆分为2个变量_Ssis_Derived - Fatal编程技术网

在ssis中将文件名变量拆分为2个变量

在ssis中将文件名变量拆分为2个变量,ssis,derived,Ssis,Derived,我是SSIS包创建的新手。我试图获取一个变量@[User::varFileName],并将其拆分为下划线,然后将值插入派生列中,例如 @[User::varFileName] = chasehaddon_nov13 派生列将是 list = chasehaddon datebounced = nov13 目前我正在尝试使用它 list = SUBSTRING(@[User::varFileName],1,FINDSTRING(@[User::varFileName],"_",1)-1) da

我是SSIS包创建的新手。我试图获取一个变量
@[User::varFileName]
,并将其拆分为下划线,然后将值插入派生列中,例如

@[User::varFileName] = chasehaddon_nov13
派生列将是

list = chasehaddon
datebounced = nov13
目前我正在尝试使用它

list = SUBSTRING(@[User::varFileName],1,FINDSTRING(@[User::varFileName],"_",1)-1)
datebounced = SUBSTRING(@[User::varFileName],0,FINDSTRING(@[User::varFileName],"_",1)-1)
希望这有点道理

第一个变量(
list
)对我来说很好,因为
datebounched
你应该试试这个:

SUBSTRING(@[User::varFileName],FINDSTRING(@[User::varFileName],"_",1) + 1,LEN(@[User::varFileName]) - FINDSTRING(@[User::varFileName],"_",1) + 1)

请参阅:第二个参数是位置,第三个参数是所需子字符串的长度。

如果您使用的是2012版本,则可以执行以下操作:

list=TOKEN([User::varFileName]"_",1)                    
datebounced=TOKEN([User::varFileName]"_",2) 

我使用的是2008年的不幸银行,这似乎是可行的,不幸的是,现在查询运行速度似乎非常慢。出于兴趣,是否对我导入的每一行都执行这一行?我想到了两个解决方案:1。使用脚本任务将部分提取到其他两个变量,例如
Dts.variables[“User::varList”]。Value=Substring(…
或2。使用属性表达式,请参见,例如或。如果对此仍有问题,请提出新问题。