首页 > 解决方案 > Azure Synapse 中的 Openrowset 语法问题

问题描述

我正在使用 Azure 突触查询编辑器运行以下查询,这也是 Azure 文档中提供的示例

SELECT
    nyc.filename() AS [filename]
    ,COUNT_BIG(*) AS [rows]
FROM  
    OPENROWSET(
        BULK '../userdata1.parquet',
    DATA_SOURCE = AzureStorage,
    FORMAT_TYPE = PARQUET
    ) nyc
GROUP BY nyc.filename();

但它总是抛出

第 5 行第 5 列的解析错误:“OPENROWSET”附近的语法不正确。

但是,我能够成功运行具有完整架构的 Create 语句并在外部表上执行选择查询

CREATE EXTERNAL TABLE dbo.userdata1 (
    [registration_dttm] nvarchar(100) NULL,
    [id]                decimal(38,0) NULL,
    [first_name]        nvarchar(100) NULL,
    [last_name]         nvarchar(100) NULL,
      |
      |
      |
)
WITH (
    LOCATION='../userdata1.parquet',
    DATA_SOURCE = AzureStorage,
    FILE_FORMAT=parquet_file_format
);

选择@@版本 --

Microsoft Azure SQL 数据仓库 - 10.0.15225.0 Sep 8 2020 20:17:38 版权所有 (c) Microsoft Corporation

如有错误请指正...

标签: azuretsqlazure-blob-storageazure-sql-data-warehouseazure-synapse

解决方案


将 nyc 分配给行集时,您缺少“AS”:

SELECT ... FROM
OPENROWSET( ... ) AS nyc GROUP BY nyc.filename();


推荐阅读