我是初学者,只是学习SQL-Server,我似乎已经使用BULK INSERT打了一针。我潜伏在类似的线程中,但我有两种类型不匹配的错误,我根本想不通。
这是表(psuedo-SQL)
CREATE TABLE patient (
Acct bigint primary key,
FacNo varchar(50) not null,
AccountKey varchar(50) not null,
LastName varchar(50),
FirstName varchar(50),
MI varchar(5),
RespName varchar(50),
Address varchar(50),
City varchar(50),
State varchar(5),
ZipCode varchar(15),
ReasonDesc varchar(50),
HomePhone varchar(18),
Sex varchar(5),
BirthDate datetime,
SSN varchar(50),
MaritalStat varchar(10),
EmployedStatus varchar(5),
Employer varchar(50),
EmpAddr varchar(50),
EmpCity varchar(50),
EmpState char(15),
EmpZip varchar(15),
WorkPhone varchar(18),
WorkPhoneExt varchar(5),
RelatedToEmploy char(15),
RelatedToAccident char(15),
AutoState varchar(5),
ADOS datetime,
BDOS datetime,
-- some fields
PTOS decimal(10,2),
-- and some more fields
)
这是我的BULK INSERT声明
BULK INSERT patient
FROM patient.csv
WITH (
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
返回的错误是
4864,批量加载数据转换错误(类型不匹配或无效 行347,第29列的指定代码页的字符 (ADOS)
4864,批量加载数据转换错误(类型不匹配或无效 行347,第49列(PTOS)
的指定代码页的字符)
在抛出错误的两个位置都有
在数据文件中,patient.csv所有日期时间列的格式为MM / DD / YYYY hh:mm:ss(ADOS也不例外),PTOS实际上只是0.00的整列
那么为什么只有在第347行才会出现错误?