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

Sql server MS SQL Server SSIS导入错误十进制值,sql-server,csv,ssis,etl,flat-file,Sql Server,Csv,Ssis,Etl,Flat File,我有以下csv文件 Column 2,3 2,4 每次我通过SSIS包导入数据时,都会因为逗号值而出错。当我将2,3和2,4更改为2.3和2.4时,工作正常。并将值与2,3和2,4一起正确存储到表中 对于导入,我使用代码页1252 ANSI Lateinisch I,数据库中的字段为十进制(18,2) 我的进口有什么问题?有什么想法吗 谢谢在您的csv连接管理器中,将列分隔符更改为{CrLf}字符。您已经在问题中提到了错误原因: 当我将2,3和2,4更改为2.3和2.4时,工作正常。并将值与2

我有以下csv文件

Column
2,3
2,4
每次我通过SSIS包导入数据时,都会因为逗号值而出错。当我将2,3和2,4更改为2.3和2.4时,工作正常。并将值与2,3和2,4一起正确存储到表中

对于导入,我使用代码页1252 ANSI Lateinisch I,数据库中的字段为十进制(18,2)

我的进口有什么问题?有什么想法吗


谢谢

在您的csv连接管理器中,将列分隔符更改为{CrLf}字符。

您已经在问题中提到了错误原因:

当我将2,3和2,4更改为2.3和2.4时,工作正常。并将值与2,3和2,4一起正确存储到表中

这意味着,
是问题的根源。选中未用作分隔符的

在平面文件连接管理器中,转到“高级”选项卡,选择列并更改列分隔符属性

如果它是行中的最后一列,请将分隔符更改为
{CRLF}

如果文件中有许多列,且分隔符为逗号
,则必须将其替换为
或使用添加文本限定符

变通办法 如果仍然不起作用,请将列类型更改为
DT_STR
,然后在
数据流任务中添加一个派生列,将
替换为
,并将值转换为十进制。例如:

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

但是,看看你的小例子,它看起来并不正确。您只声明1个标题(
),但两行都有2个值(对于第一行
2
3
)。逗号(
)是分隔符。也许你的意思是引用你的值
“2,3”
?那么,你用逗号作为十进制分隔符?csv的开头是错误的。@Flamms,您会得到错误,因为逗号被认为是默认的列分隔符,而点是十进制分隔符。这就是为什么CSV代表“逗号分隔值”