[DB] MS SQL - XML 데이터 조회하기

2016. 5. 14. 17:56Database

XML 데이터 조회

  • query(): 지정된 경로의 XML을 반환합니다.
    1
    2
    -- People/Report하위 XML을 반환
    query('/People/Report')
  • value(): 지정된 값을 반환합니다.
    1
    2
    -- Attribute ID가 3인 People/Report의 Name Attribute 값을 반환
    value('//People/Report[@ID=3]//@Name')
  • exist(): 지정된 경로의 값이 NULL이면 0, 아니면 1을 반환합니다.

XML 입력

XML을 Insert하기 위해서는 CONVERT 변환함수를 통해 XML type으로 변경해야 합니다.

1
2
INSERT INTO People (Name, xReport)
VALUES('홍길동', CONVERT(XML, N'XML데이터', 1))

Convert 변환함수의 매개변수는 다음과 같습니다.

1
CONVERT(DataType, Expression, Style)
  1. DataType: 반환될 데이터 형식. XML이라고 명시하면 Expression이 XML로 변환되게 됩니다.
  2. Expression: 변환될 데이터의 표현식
  3. Style: 정수형으로써 데이터가 어떤 형태로 변환될지 여부입니다.
    • 0: 기본값으로써 불필요한 공백을 삭제합니다. 내부 DTD 하위집합을 허용하지 않습니다.
    • 1: 불필요한 공백을 유지합니다. xml:space="preserve"와 동일하게 동작합니다.
    • 2: 내부 DTD 하위집합 처리를 제한적으로 허용합니다.
    • 3: 불필요한 공백을 유지하고 제한된 내부 DTD 하위집합 처리를 허용합니다.