2017-10-12 5 views
1

J'ai une requête sql utilisant OPENJSON pour importer des données json dans une table. Mon problème est que les données dont j'ai besoin sont imbriquées. Comment puis-je utiliser un caractère générique dans le chemin JSON obtenir ce dont j'ai besoin?OpenJson utilisant un caractère générique

SELECT @Set = 
BulkColumn FROM OPENROWSET 
(BULK 'Sets.json', DATA_SOURCE = 'MyAzureJson', SINGLE_BLOB) JSON; 

INSERT INTO [Sets] 
SELECT [name] 
FROM OPENJSON(@Set) 
WITH(
    [name]  nvarchar(50) '$.*.name' 
) 

mon fichier JSON est configuré comme ça ..

{ 
    "testOne" : { 
     name: "nameOne" 
    }, 
    "testTwo : { 
     name: "nameTwo" 
    } 
} 

l'erreur que je reçois tout ce que j'essaie ..

chemin JSON est pas correctement formaté. Le caractère inattendu '*' se trouve à la position 2.

J'ai essayé. * [] et rien ne fonctionne

Répondre

-1

Essayez ..name ou $ .. name. L'astérisque n'est pas nécessaire.

+0

J'ai essayé les deux, même erreur –

+0

Il ne peut pas être la même erreur. L'erreur d'origine mentionnait l'astérisque: "Le chemin JSON n'est pas correctement formaté, le caractère inattendu" * "se trouve à la position 2." – marss