gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:50:19 24 4
gpt4 key购买 nike

我正在尝试将 Azure Blob 存储中存在的以下 Excel 文件导入到 SQL Server

EXCEL文件

enter image description here

查询

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 ""

格式文件说明

enter image description here

当我执行查询时,出现以下错误

Msg 4863, Level 16, State 1, Line 210 Bulk load data conversion error (truncation) for row 1, column 1 (DepartmentID).

看起来格式文件中的字段终止符不起作用,有导入文件的想法吗?

最佳答案

您的格式文件代表制表符分隔值文件的导入,但在源路径中您引用的是 xslx 文件。
Xslx 文件是多个 XML 文件的 ZIP 存档,批量导入将无法处理它。要打开它,您需要使用 Microsoft Jet 或 ACE 驱动程序,这里有一些示例: using-openrowset-to-read-excel 。在处理文件之前,您需要将文件从 blob 存储下载到本地磁盘。您可以使用 SQL Agent 或 SSIS 下载它。

其他选项是将数据保存为 CSV 或制表符分隔文件,然后直接从 Blob 存储加载。

关于sql - 将 Excel 从 Azure Blob 存储导入到 Sql Server 时出现数据截断问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56162109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com