You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse无服务器SQL Pool使用OPENROWSET无法识别CSV表头

解决Azure Synapse无服务器SQL Pool读取CSV表头识别问题

问题根源

你之前的尝试未启用表头识别参数,导致解析器默认将CSV第一行视为数据行,列名自动生成C1/C2;指定FIRSTROW=2仅跳过了表头行,但仍未自定义列名。

解决方法

方法1:启用HEADER_ROW参数(推荐)

添加HEADER_ROW = TRUE参数,让解析器自动识别CSV第一行为列名,并跳过该行读取实际数据:

SELECT TOP 100 *
FROM OPENROWSET(
    BULK 'https://xxxx.dfs.core.windows.net/xx/xx/Test.csv',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0',
    HEADER_ROW = TRUE
) AS [result]

执行后将返回预期结果:

test_col1,test_col2
A,B

方法2:显式定义列结构(更灵活)

如果需要指定数据类型,或表头包含特殊字符导致识别异常,可通过WITH子句直接定义列名和类型,同时用FIRSTROW=2跳过表头行:

SELECT TOP 100 *
FROM OPENROWSET(
    BULK 'https://xxxx.dfs.core.windows.net/xx/xx/Test.csv',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0',
    FIRSTROW = 2
) WITH (
    test_col1 VARCHAR(50),
    test_col2 VARCHAR(50)
) AS [result]

此方法可精准控制列属性,避免自动识别的不确定性。

额外注意

  • HEADER_ROW参数仅在PARSER_VERSION='2.0'及以上版本支持,请确保解析器版本符合要求。
  • 若CSV存在编码问题(如UTF-8带BOM),可额外添加CODEPAGE='65001'参数解决表头乱码问题。

内容的提问来源于stack exchange,提问作者el_pazzu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:15:25