[110]]警告:由于从数据插入数据,可能会发生截断 流列“Phone1”,长度为50到数据库列 “电话”,长度为20。
我尝试了一些方法,包括添加派生列任务,将Phone1转换为长度为20的DT_WSTR字符串 - (DT_WSTR,20)(SubString(Phone1,1,20))并添加DataConversion任务进行转换从WT_WSTR(50)到WT_WSTR(20)的字段Phone1但它们都不起作用。我知道我可以在SQL String @ OLEDB Source中使用SubStr phone1,但我很想知道SSIS如何处理这种情况
答案 0 :(得分:1)
您的转化应该会产生一个新变量,请勿使用Phone1。使用转换值的名称。
答案 1 :(得分:1)
根本原因 - 当源列的数据类型长度超过目标列的数据类型长度时,此警告消息将显示在SSIS数据流任务上。
解决方案 - 要从SSIS解决方案中删除此警告消息,请确保源列的数据类型长度应等于目标列的数据类型长度。
答案 2 :(得分:1)
警告:由于从数据流列插入数据而可能发生截断" Phone1"长度为50到数据库专栏"电话"长度为20。
解决方案:
要删除上述警告,您可以按照以下步骤操作:
1)右键单击源组件(例如:flat文件),然后单击show advance editor。
2)转到输入和输出属性。
3)点击平面文件源输出 - >输出栏 - >选择(PhoneNo)
4)您可以获取phoneno的属性窗口,单击Length属性并将值更改为20.单击确定。
我希望这可以帮到你。
答案 3 :(得分:0)
您可以更改脚本组件中“输出”列(Phone1)的大小,默认值为50,手动将其设置为20.
答案 4 :(得分:0)
这只是一个警告。无论如何,你的包都会执行。 这是因为源变量和目标变量的长度不同。 要解决此警告,请右键单击目标源,选择show advance editor选项,选择输入和输出属性选项卡,展开输入和输出变量并检查长度。如果它们不同,则使用数据转换操作使其相同。
答案 5 :(得分:0)
如果其他所有方法都失败,请尝试此操作。
我所经历的是,从同一数据流任务或另一个包的数据流任务复制并粘贴现有的Ole DB目标/源元素,然后开始更改详细信息后,偶尔会出现此错误内。
即使列的数据类型和长度相同,该警告仍然偶尔出现。这是我删除复制的元素并从头开始构建它们的时候。这使警告消失了。
我的猜测是元数据在复制/粘贴期间被弄污了。
答案 6 :(得分:0)