【发布时间】:2012-12-09 10:29:00
【问题描述】:
我正在使用 BULK INSERT 导入 CSV 文件。 CSV 文件中的一列包含一些包含分数的值(例如1m½f)。
我不需要对分数进行任何数学运算,因为这些值仅用于显示目的,因此我将列设置为nvarchar。 BULK INSERT 有效,但是当我查看 SQL 中的记录时,分数已被替换为分号 (¢),因此显示的文本为 1m¢f。
我很想了解发生这种情况的原因以及有关如何解决此问题的任何想法。 BULK INSERT 命令是:
BULK INSERT dbo.temp FROM 'C:\Temp\file.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' );
【问题讨论】:
-
数据是否真的包含二分之一字符?
-
是的,它包含 ½ 字符而不是 1/2。
-
@AaronBertrand,批量插入是:
codeBULK INSERT dbo.temp FROM 'C:\Temp\file.csv' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n') ;排序规则是 Latin1_General_CI_AS。如何检查文件是否标记为 Unicode?span> -
您可以检查文件是否为 Unicode,例如,在记事本中打开文件,然后转到文件 > 另存为。根据 Windows 的版本,您应该会在某处看到“编码”下拉菜单,其中包含 ANSI、UTF-8、Unicode、Unicode 大端序等选项...
-
@AaronBertrand,谢谢 - 它显示 ANSI。
标签: sql sql-server-2012 bulkinsert nvarchar