MS SQL Server的SSIS导入错误十进制值

问题描述 投票:4回答:2

我有以下csv文件

Column
2,3
2,4

而每次当我通过SSIS包导入数据,我得到的,因为逗号值的误差。当我改变2,3和2,4〜2.3和2.4这是工作的罚款。和值会以2,3和2,4成表正确保存。

对于进口我使用代码1252 ANSI-Lateinisch我和在数据库领域是十进制(18,2)。

什么是错我的进口?有任何想法吗?

谢谢

sql-server csv ssis etl flat-file
2个回答
1
投票

你提到的问题,错误原因:

当我改变2,3和2,4〜2.3和2.4这是工作的罚款。和值会以2,3和2,4成表正确保存。

这意味着,导致问题。检查未使用的分隔符。

在平面文件连接管理器,进入高级选项卡,选择列,并更改列分隔符属性。

如果是该行的最后一列,改变分隔符{CRLF}

如果你有很多列在文件中的分隔符是逗号,那么你有.来取代它,或者使用添加一个文本识别符。

Workaround

如果仍然无法正常工作,缠得列类型DT_STR然后在Data flow task添加一个出列与,取代,和投值是十进制数。例:

(DT_DECIMAl,2)REPLACE([COLUMN], ",", ".") 

1
投票

在CSV连接管理器,更改列分隔符为{CRLF}字符。

© www.soinside.com 2019 - 2024. All rights reserved.