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

2016. 5. 14. 17:56Database

XML 데이터 조회

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

XML 입력

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

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

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

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