배경 나 XML 열에 SQL 테이블(를 사용하여 SQL Server). 각 노드가 다른 양의 메타데이터가 포함되어 있습니다. 예를 들어,아래의 예에서,단계 1 번가만으로"아니"메타데이터는 동안,단계 2 번 또는 RBuffer.
<Step No="1" >Step Number 1</Step>
<Step No="2" RBuffer="6000">Step Number 2</Step>
<Step No="3" Macro="5">Step Number 3</Step>
예상 출력
고 싶을 추출하는 메타데이터를 동적으로는 동안 잡는 값입니다. 예를 들어,위의 이 모습은 아래 테이블. 중요한 것은 문제가 안 된다는 얼마나 많은 메타데이터 태그가 있는,내가 가고 싶은 그들 모두를 통해. 의 일부 데이터가 10+태그가 있습니다.
노드 | 단계 | 키 | 값 |
---|---|---|---|
단계 | 1 | 값 | 단계 1 번호 |
단계 | 2 | RBuffer | 6000 |
단계 | 2 | 값 | 2 단계 |
단계 | 3 | 매크로 | 5 |
단계 | 3 | 값 | 단계 3 번호 |
지금까지 작업
지금까지할 수 있었던 메타데이터를 추출하려면에서 정한 방법:
SELECT o.value('@No', 'varchar(32)') [Step]
,o.value('@Macro', 'varchar(32)') [Macro]
,o.value('@RBuffer', 'varchar(32)') [RBuffer]
,o.value('(text())[1]', 'varchar(32)') [Action]
FROM [dbo].[dw_mrd_vss_rundetail_stg] S
CROSS APPLY S.[rundata_detail].nodes('Step') xmlData(o)
는 다음과 같은 테이블:
단계 | 매크로 | RBuffer | 작 |
---|---|---|---|
1 | NULL | NULL | 단계 1 번호 |
2 | NULL | 6000 | 2 단계 |
3 | 5 | NULL | 단계 3 번호 |
하지만 명시적으로 호출하여 각각의 가치와 열을 만들에서는 이 방법이지 않는 확장성을 보장할 수 있습니다. 어떤 도움을 감사하겠습니다. 나는 비교적 새로운 종류의 데이터 은폐에서 SQL,그래서 설명하는 코드는 도움이 될 것입니다.