Sql server MSSQL-导入平面文件-格式不正确
我使用MSSQL Server 2019,我想通过以下方式将CSV文件插入自动生成的数据库:Sql server MSSQL-导入平面文件-格式不正确,sql-server,csv,Sql Server,Csv,我使用MSSQL Server 2019,我想通过以下方式将CSV文件插入自动生成的数据库: DB->Tasks->导入平面文件…(错误更低) DB->Tasks->Import Data…(必须将.xlsx导出到.xls(2003),但不能正确导入所有行,行格式类似于文本,值类似于930或280导出类似于null值) 如果我手动选择所有列作为varchar导入是可以的,但如果我使用choose float datatype,我会得到一个错误 数据库排序-拉丁1\u通用\u 100\u CI
- DB->Tasks->导入平面文件…(错误更低)
- DB->Tasks->Import Data…(必须将.xlsx导出到.xls(2003),但不能正确导入所有行,行格式类似于文本,值类似于930或280导出类似于null值)
XXX;XXX;TBJ;A;33;4;1.4;6;3000;1206;3216-18;3.2;0.2;1.6;0.2:0.1;1.8;hre_tbj_dla;K
XXX;XXX;TBJ;A;33;4;1.4;6;3000;1206;3216-18;3.2;0.2;1.6;0.2:0.1;1.8;hre_tbj_dla;M
XXX;XXX;TBJ;A;3.3;6;0.5;6;8000;1206;3216-18;3.2;0.2;1.6;0.2:0.1;1.8;hre_tbj_dla;K
BULK INSERT [dbo].[xxx]
FROM 'c:\Users\xxx\Documents\Work\xxx.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ';', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
ERRORFILE = 'c:\Users\xxx\Documents\Work\xxx_error.csv',
TABLOCK
);
加载到MSSQL导入平面数据向导的数据:
我通过批量插入尝试不同类型的加载数据
XXX;XXX;TBJ;A;33;4;1.4;6;3000;1206;3216-18;3.2;0.2;1.6;0.2:0.1;1.8;hre_tbj_dla;K
XXX;XXX;TBJ;A;33;4;1.4;6;3000;1206;3216-18;3.2;0.2;1.6;0.2:0.1;1.8;hre_tbj_dla;M
XXX;XXX;TBJ;A;3.3;6;0.5;6;8000;1206;3216-18;3.2;0.2;1.6;0.2:0.1;1.8;hre_tbj_dla;K
BULK INSERT [dbo].[xxx]
FROM 'c:\Users\xxx\Documents\Work\xxx.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ';', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
ERRORFILE = 'c:\Users\xxx\Documents\Work\xxx_error.csv',
TABLOCK
);
一切正常请尝试仅导入一行数据。这样行吗?如果不起作用,请将所有映射更改回
nvarchar
,然后一次更改一列并导入。这样做,直到您发现有问题的列映射,然后希望它应该/可能会变得更加明显,为什么该值不能转换为所需的类型。↑ (续)如果第一行使用映射,则其中一行中存在意外值,由您确定哪一行包含异常。可能是缺少/额外的代码>分层或某个值根本不正确。隐藏列名,然后不给我们一个简单的方法来告诉哪些列映射到图像中的哪些列,这对我们来说并不容易。我也不确定您希望通过不给我们列名来真正“隐藏”什么。我尝试了这个方法,但是对于每个数字类型的列,我都会遇到这个错误(其他列我设置为NVARCHAR),分隔符是;也可以(导入向导正确显示数据),我在应用程序中使用此文件,它也可以,而且如果我尝试将此文件上载到Oracle DB,一切都可以尝试在LibCalc或Excel上打开该平面文件,并将加载的数据保存/导出到CSV。之后,尝试加载该输出CSV文件。