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

如何在Azure SQL中为OPENROWSET配置文件路径匹配模式?

Azure SQL Database OPENROWSET匹配特定CSV文件问题修复

问题根源

原查询存在两个核心问题:

  1. BULK路径中的通配符未使用{}分组,filepath(n)函数依赖分组通配符提取对应片段,原语句里零散的[0-9]无法被识别为年、月、日的独立分组。
  2. 未指定CSV格式解析规则,OPENROWSET无法自动按CSV格式读取文件内容。

修正后的查询语句

SELECT TOP 10 *
FROM OPENROWSET(
    BULK 'testpath/test/Test_{yyyy}_{mm}_{dd}.csv',
    FORMAT = 'CSV',
    FIRSTROW = 1 -- 若CSV包含表头则设为1,无表头则改为2
) WITH (
    -- 请根据你的CSV实际列结构替换以下定义
    Column1 VARCHAR(100),
    Column2 INT,
    Column3 DATETIME,
    -- 其他列...
) AS row
WHERE DATEFROMPARTS(
    CAST(row.filepath(1) AS INT),
    CAST(row.filepath(2) AS INT),
    CAST(row.filepath(3) AS INT)
) BETWEEN @DATE1 AND @DATE2;

关键注意事项

  • 使用{yyyy}、{mm}、{dd}作为分组通配符,分别对应filepath(1)(年份)、filepath(2)(月份)、filepath(3)(日期),确保能正确提取日期片段。
  • 必须通过WITH子句明确定义CSV的列名和数据类型,否则OPENROWSET无法正确解析文件内容。
  • DATEFROMPARTS要求参数为整数类型,因此需要将filepath(n)返回的字符串转为INT。
  • 根据CSV是否包含表头,调整FIRSTROW参数:有表头设为1,无表头设为2以跳过列名行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:13:22