【发布时间】:2010-08-09 09:27:05
【问题描述】:
我正在使用 SSIS 将一个平面 txt 文件导入 SQL Server 2005。问题是txt文件中-1到0之间的负数是没有前导零的格式,例如:
-.15
如果我使用简单的 INSERT 语法将这样的数字插入到我的数据库中,它就可以毫无怨言地工作。但是,如果遇到这样的数字,SSIS 会报告错误。如果我将 txt 文件中的数字更改为:
-0.15
SSIS 工作正常。这是一个已知问题吗?有什么方法可以在不更改源 txt 文件中的值的情况下解决它?
【问题讨论】:
-
不是一个完整的答案,但是:1.您导入的语言/小数点分隔符设置是否不同(除了从 manamgent 工作室触发 SQL),以及 2:您是否正确设置字段类型? (bimonkey.com/2009/07/…)。 3:如果一切都失败了,也许你可以作为不同的类型导入并在导入后的数据上运行你自己的过程。
-
谢谢,托拜厄斯。小数分隔符可以,数据类型也可以。至于第 3 点的建议。你是对的,但如果其他一切都失败了,我会这样做。
-
嗯,事实上,问题不仅仅出现在-1和0之间的负小数,而是0和1之间的正小数,例如:.1
-
哦,是的,我忘了复制错误消息:“由于潜在的数据丢失,无法转换值” 在错误描述的下一行,有一个行号,其中数字第一次出现。因此,它一定是小数在 -1 和 1 之间的问题,并且小数分隔符前没有零数字。
-
托拜厄斯,你是对的 - 我必须更改我的区域设置以使用点 (.) 作为小数分隔符(之前是逗号),现在它可以工作了。但是,如果知道十进制数据将始终使用点作为小数分隔符,那么是否有任何方法可以在任何具有任何给定区域设置小数分隔符的计算机上创建 SSIS。如果您愿意,可以发布您的答案以获得我的回答标记。
标签: sql sql-server-2005 ssis import