我正在尝试将CSV文件加载到表中以对数据进行排序。但是,smallmoney
列BillingRate
(例如$ 203.75)将无法转换,SQL Server会生成以下消息:
第2行第4列(BillingRate)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
Msg 4864,Level 16,State 1,Line 10
以下是我正在使用的代码:
--CREATE TABLE SubData2
--(
--RecordID int,
--SubscriberID int,
--BillingMonth int,
--BillingRate smallmoney,
--Region varchar(255)
--);
BULK INSERT Subdata2
FROM 'C:\Folder\1-caseint.csv'
WITH
(FIRSTROW = 2,
FIELDTERMINATOR = '|', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
ERRORFILE = 'C:\Folder\CaseErrorRows4.csv',
TABLOCK);
CSV文件中的典型代码行如下所示:
1|0000000001|1|$233.94|"West"
如果这里有任何明显的错误,请道歉 - 我是SQL Server的新手:)
非常感谢, 汤姆。
答案 0 :(得分:0)
这很奇怪。在直接插入时,只有最后一个失败。
declare @t table (sm smallmoney);
insert into @t
values ('$256.6')
insert into @t
values (244.8);
insert into @t
values ('12.8');
insert into @t
values ('$256.5'), ('244.7');
insert into @t
values ($256.5);
insert into @t
values ('$256.5'), (244.7), ('12.12');
select * from @t;
尝试从数据中删除$。