【发布时间】:2015-07-28 04:25:04
【问题描述】:
尝试使用这个:
substring(@[User::v_Filename],37,3)
但是,似乎 substring 只能处理 20 个字符?
文件名如下所示:
D:\Projects\OTS\MYSSA Dashboard\Data\ATL_20150725Text.csv
我想要的只是ATL 部分
但是当ssis移动到下一个文件时,它可能会变成NYC或DAL,大约有26个文件需要处理,全部来自不同的区域。
【问题讨论】:
-
子串没有这个限制。可能是您放置数据的文件存在格式问题。
-
我没有将数据放入文件中。我想要得到的只是最后一个反斜杠之后的 3 个字符,或者在本例中为第 37 个字符 + 3。在本例中为 ATL。只是试图从派生列中获取该日期到表中。不尝试将数据移动到文件中。
-
好的,但您是如何得出只支持 20 个字符的结论的?
-
您确定 [User::v_Filename] 的内容与您在运行时列出的一样吗?也许你可以使用一个脚本组件然后去:system.windows.forms.messagebox.show dts.variables("User::v_filename");确认这一点?
-
是的。如果我不使用子字符串没有问题,我可以直接导入。如果我使用 substring 并说 substring(@[User::v_filename],17,3) 它会导入,但如果我去 18,3 它只返回两个字符....如果我像 20.3 这样超过 20 我会收到错误我运行它。
标签: sql sql-server-2008 ssis