繁体   English   中英

将Azure Blob存储中的Excel导入到Sql Server时出现数据截断问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM