在 SSMS 中导入平面文件时的小数分隔符

Posted

技术标签:

【中文标题】在 SSMS 中导入平面文件时的小数分隔符【英文标题】:Decimal separator while importing a flat file in SSMS 【发布时间】:2022-01-17 15:56:15 【问题描述】:

将平面文件导入 SSMS 时遇到问题。当我从特定系统下载 CSV 文件时,小数点分隔符始终为“.”。我有一个逗号的区域设置,我一直使用逗号。但是在将这些 CSV 文件导入 SSMS 时,由于 SSMS 无法将值识别为数字(浮点数、小数等),我收到类型不匹配的错误

我尝试切换区域 Windows 设置并用逗号替换 dot,这解决了问题并导入了文件,但问题是,我能否以某种方式更改 SSMS 中的设置,以便我能够将逗号保留为默认但导入带小数点分隔符的 CSV 文件?

我只需要使用 SSMS,我无法安装 SSIS 包。

非常感谢您的任何反馈。

【问题讨论】:

旁注,您不导入 到 SSMS,而是导入 SQL Server。 导入如何? SSMS 至少有两种方法可以做到这一点,并且都可以处理区域设置和不同的分隔符。例如,Import Data 任务会创建一个可以修改的 SSIS 包。 @PanagiotisKanavos 非常感谢您的反馈。我是这个领域的初学者,所以请原谅我的术语。我在 SSMS 中使用导入平面文件任务。我习惯使用 Excel 进行所有数据分析,当将 csv 导入 Excel 时,可以选择在导入结束时选择小数分隔符,因此结果中的所有点都变为逗号,因此类型被识别为数字,我是想知道在 SSMS 的情况下是否有类似的可能。我可以在“导入数据”选项中找到它吗? 试试这个:在 SSMS 中选择“导入数据”选项,然后在“数据源”中选择“平面文件源”。选择要加载的文件,然后更改“区域设置”选项(位于文件名下方)。 @Alex 非常感谢 Alex,这很有效,我成功地用逗号而不是小数点导入了文件。真的很有帮助,非常感谢! 【参考方案1】:

在 SSMS 中选择“导入数据”选项,然后在“数据源”中选择“平面文件源”。选择要加载的文件,然后更改“区域设置”选项(位于文件名下方)。

区域设置控制数据格式的显示和解释方式,例如货币符号和基数(小数分隔符)字符。

【讨论】:

以上是关于在 SSMS 中导入平面文件时的小数分隔符的主要内容,如果未能解决你的问题,请参考以下文章

以逗号作为小数分隔符的数据框

在 PostgreSQL 中导入带分隔符列表的 CSV 数据

无法在 Pandas 中导入逗号分隔的引用文件

利用sqoop从 hive中往mysql中导入表出现的问题

R语言使用read_table函数读取文本文件或者文本数据生成dataframe数据集从分隔文本文件中导入数据(Importing data from a delimited text file)

DELPHI中导入Excel时,存在格式问题,怎么解决?