当我尝试批量插入时出现错误:
BULK INSERT #tbl_InterCompanyUploadDetail_Staging
FROM '\\SVRP03546008461D\QA\UploadTemplatewithvalidation.xlsx'
WITH (FIRSTROW = 6, FIELDTERMINATOR ='\t', ROWTERMINATOR ='\\n' )
我收到的错误是:
Bulk load data conversion error (truncation) for row 6, column 2 (Oracle Company Code).
Excel 中的列的数据为 470,数据库中的列的数据为 varchar (10)。 那么错误的原因可能是什么。
最佳答案
问题
BULK INSERT
可能不适用于 xlsx 文件,请尝试将 .xlsx
文件转换为 .csv
文件来实现此(使用BULK INSERT
)
第一个解决方案 - 使用 OPENROWSET
尝试将 OPENROWSET
与 Microsoft.ACE.OLEDB.12.0
提供程序一起使用:
Insert into <rawdatatable>
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\SSIS\FileToLoad.xlsx;HDR=YES',
'SELECT * FROM [Sheet1$]')
或者
SELECT * INTO Data_dq
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=D:\Desktop\Data.xlsx', [Sheet1$]);
第二个解决方案 - 使用 OPENDATASOURCE
SELECT * INTO Data_dq
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=D:\Desktop\Data.xlsx;Extended Properties=Excel 12.0')...[Sheet1$];
引用文献
关于sql - 批量插入时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50152987/