使用SSIS DerivedColumn更改数据长度

时间:2017-05-10 22:30:15

标签: sql-server ssis etl ssis-2012

我正在阅读.csv文件以粘贴到sql table,但我会将广告添加到列中

enter image description here

它的存在是因为我的目标表格中包含{MOLDE“string(50)且来源有string(255)

如何更改“MOLDE”长度才能获得50个第一个值

所以我创建派生列,我尝试使用子字符串,但它不断获得长度255 enter image description here

我能在那里做什么?此致

---- ---- UPDATE

我将其解析为答案评论,但我仍然像这样获得广告图标: enter image description here

删除它是否可行?

2 个答案:

答案 0 :(得分:1)

尝试强制转换为长度等于50的DT_STR

(DT_STR,50,1252)SUBSTRING(MOLDE,1,50)

OR

(DT_STR,50,1252)LEFT(MOLDE,50)

请注意,如果警告仍然只是双击目标以刷新元数据,则必须将派生列映射到目标而不是原始列

<强>参考

更新1

在阅读您的评论后,我认为警告仍然出现,因为您选择了派生列选项来替换导致此冲突的原始列,只需将选项Replace 'MOLDE'更改为Add New Column并映射派生列到目的地列。

或者确保目标从派生列组件而不是源列中读取MOLDE列,使用高级编辑器打开目标可能会有所帮助。

答案 1 :(得分:0)

右键单击警告图标,选择“显示高级编辑器”,输入和输出属性选项卡,检查列长度。