2017-10-12 3 views
1

OPENJSON을 사용하여 json 데이터를 테이블로 가져 오는 SQL 쿼리가 있습니다. 내 문제는 필요한 데이터가 중첩 된 것입니다. JSON 경로에서 와일드 카드를 사용하면 어떻게 될까요?OpenJson 와일드 카드 사용

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

은 내 JSON 파일은 .. 다음과 같이 설정되어

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

오류 내가 시도 할 모든 것을 얻고있다 ..

JSON 경로가 제대로 포맷되지 않았습니다. 예기치 않은 문자 '*'가 위치 2에 있습니다.

시도했습니다. * [] 및 아무 것도 작동하지 않습니다.

답변

-1

Try ..name 또는 $ .. name. 별표는 필요하지 않습니다.

+0

두 가지 모두 시도했습니다. 동일한 오류 –

+0

동일한 오류 일 수 없습니다. 원래 오류는 별표를 언급했습니다 : "JSON 경로의 형식이 올바르지 않습니다. 위치 2에 예기치 않은 문자 '*'가 있습니다. – marss