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
Ssis 如何在不更改部署服务器上的区域设置的情况下导入平面文件?_Ssis_Delimiter_Flat File - Fatal编程技术网

Ssis 如何在不更改部署服务器上的区域设置的情况下导入平面文件?

Ssis 如何在不更改部署服务器上的区域设置的情况下导入平面文件?,ssis,delimiter,flat-file,Ssis,Delimiter,Flat File,我正在尝试读取SSIS(2005/2008)中的文本文件。我创建了一个到该文件的连接,并放置了平面文件源,它在预览中工作正常,但当我尝试运行时,我得到一个错误提示: [Derived Column [91848]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR 因此,我发现有两列带有十进制数,它们使用句点作为分隔符。但由于我在斯堪的纳维亚环境中工作,服务器希望逗号作为分隔符 有效的方法是在windows服务器上的区域设

我正在尝试读取SSIS(2005/2008)中的文本文件。我创建了一个到该文件的连接,并放置了平面文件源,它在预览中工作正常,但当我尝试运行时,我得到一个错误提示:

[Derived Column [91848]] 
Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR
因此,我发现有两列带有十进制数,它们使用句点作为分隔符。但由于我在斯堪的纳维亚环境中工作,服务器希望逗号作为分隔符

有效的方法是在windows服务器上的区域设置中将分隔符从逗号手动更改为句点,但这不是一个适当的解决方案


如何使用SSIS导入平面文件,而不必更改部署包的服务器上的区域设置

您应该能够在平面文件连接对象上设置
LocaleID
。这将在读取该文件时应用英语区域设置,而不会影响计算机上的其他内容。(查看“属性”窗口,而不是“编辑器”对话框。)

右键单击
连接管理器
部分下的平面文件连接,然后选择
属性
。您还可以选择平面文件连接管理器,然后按
F4
查看属性

根据您的偏好设置
LocaleID


我做了相反的事情,用逗号填充一个文本文件作为十进制分隔符,并将LocaleID设置为Norway。以十进制形式导入的字段很好。我的猜测是,您在更改LocaleID后没有刷新列映射。在SSIS 2012中为我工作:文本文件以逗号作为小数分隔符,美国作为控制面板中的区域格式,美国作为连接对象中的区域设置->失败。将连接对象中的区域设置更改为Norwegian,Nynorsk(挪威)解决了这个问题,不需要刷新列映射。这对我帮助很大。之后必须刷新源对象中的列映射。