[英]Data Truncation issue while importing excel from Azure Blob storage to Sql Server
我正在尝试将azure blob存储中存在的下面的excel文件导入到sql server中
EXCEL文件
询问
SELECT *
FROM OPENROWSET(
BULK 'container/testfile.xlsx',
DATA_SOURCE = 'ExternalSrcImport',
FORMATFILE='container/test.fmt', FORMATFILE_DATA_SOURCE = 'ExternalSrcImport',
codepage = 1252,
FIRSTROW = 1
) as data
格式文件
10.0
4
1 SQLCHAR 0 7 "\t" 1 DepartmentID ""
2 SQLCHAR 0 100 "\t" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 100 "\t" 3 GroupName SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 24 "\r\n" 4 ModifiedDate ""
格式文件的例证
当我执行查询时,我收到以下错误
消息4863,级别16,状态1,行210第1行第1列(DepartmentID)的批量装入数据转换错误(截断)。
看起来格式文件中的字段终止符不起作用,导入文件的想法是什么?
您的格式文件表示导出了制表符分隔值文件,但在源路径中您指的是xslx文件。
Xslx文件是多个XML文件的ZIP存档,批量导入将无法处理它。 要打开它,您需要使用Microsoft Jet或ACE驱动程序,这里有一些示例: using-openrowset-to-read-excel 。 在处理文件之前,您需要将文件从blob存储器下载到本地磁盘。 您可以使用SQL Agent或SSIS下载它。
其他选项是将数据保存为CSV或制表符分隔文件,并直接从blob存储中加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.