Problèmes de syntaxe Openrowset dans Azure Synapse

Oct 06 2020

J'utilise l'éditeur de requête Azure synapse pour exécuter la requête ci-dessous, c'est également un exemple fourni dans la documentation 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();

Mais ça jette toujours

Erreur d'analyse à la ligne: 5, colonne: 5: syntaxe incorrecte près de «OPENROWSET».

Mais, j'ai pu exécuter avec succès l'instruction Create avec le schéma complet et effectuer des requêtes de sélection sur la table externe

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
);

Sélectionnez @@ Version -

Microsoft Azure SQL Data Warehouse - 10.0.15225.0 8 septembre 2020 20:17:38 Copyright (c) Microsoft Corporation

Veuillez me corriger si quelque chose ne va pas ...

Réponses

1 JoelCochran Oct 06 2020 at 21:20

Il vous manque le "AS" lorsque vous affectez nyc à l'ensemble de lignes:

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