My Name is Kay....

DIY , 먹방 , 개발 , 육아 , 여행 좋아합니다.
AdBlock 사용시 화면이 정상적으로 노출되지 않습니다.
포스팅 관련 문의 및 개발 문의는 Email : wkzkfmxksi@gmail.com

추가 포스팅이 이뤄지지 않는 블로그입니다. 문의는 wkzkfmxksi@gmail.com 으로 연락주세요.
kay
조회 수 3537 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

DB Table 데이터를 xml 생성하는 샘플 예문입니다.


FOR XML 모드에는 RAW , AUTO , EXPLICIT , PATH 등이 있으며 모드에 따라 조금씩 다릅니다.

뭔가 모드별로 다르긴한데..어렵네요..그래도 개념을 잡고 가는것이 좋다고 생각합니다.


RAW 모드는 행 집합의 각 행마다 SELECT 문으로 반환되는 단일 <row> 요소를 생성합니다. 중첩된 FOR XML 쿼리를 작성하여 XML 계층을 생성할 수 있습니다.

AUTO 모드는 SELECT 문이 지정된 방식에 따른 추론 방식을 사용하여 결과 XML에서 중첩 구조를 생성합니다.
생성된 XML의 셰이프는 최소한으로만 제어할 수 있습니다.
AUTO 모드 추론 방식으로 생성된 XML 셰이프와는 달리 XML 계층을 생성하도록 중첩된 FOR XML 쿼리를 작성할 수 있습니다.

EXPLICIT 모드는 XML 셰이프에 대해 더 많은 제어 기능을 제공합니다. 사용자는 XML 셰이프를 결정할 때 자신의 의지대로 특성과 요소를 혼합할 수 있습니다.
이를 위해서는 쿼리 실행에 따라 생성되는 결과 행 집합에 대한 특정 서식이 필요합니다.
그런 다음 이 행 집합 서식이 XML 셰이프로 매핑됩니다.
EXPLICIT 모드의 장점은 특성 및 요소를 자신의 의지대로 혼합하고, 래퍼 및 중첩된 복합 속성을 만들고
, 공백으로 구분된 값(예: 주문 ID 값 목록이 포함된 OrderID 특성)과 혼합된 내용을 만들 수 있습니다.

하지만 EXPLICIT 모드 쿼리 작성은 복잡할 수 있습니다.
중첩된 FOR XML RAW/AUTO/PATH 모드 쿼리 및 TYPE 지시어를 작성하여 EXPLICIT 모드를 사용하는 대신 새로운 FOR XML 기능 중 일부를 사용하여 계층을 생성할 수 있습니다.
중첩된 FOR XML 쿼리는 EXPLICIT 모드를 사용하여 생성할 수 있는 모든 XML을 만들 수 있습니다. 

PATH 모드를 사용하면 요소와 특성을 간단하게 혼합할 수 있고 추가 중첩을 간단하게 도입하여 복잡한 속성을 표시할 수 있습니다. FOR XML EXPLICIT 모드 쿼리를 사용하여 행 집합에서 해당 XML을 생성할 수 있지만 PATH 모드를 사용할 경우 복잡해지기 쉬운 EXPLICIT 모드 쿼리의 대안을 찾을 수 있습니다. XML 유형 인스턴스를 반환하는 중첩 FOR XML 쿼리 및 TYPE 지시어 작성 기능과 함께 PATH 모드를 사용하면 보다 간편하게 쿼리를 작성할 수 있습니다.


모드별 예제는 테크넷을 참고해주시고 개인적으로 많이 사용하는 EXPLICIT 모드로 예문을 작성했습니다. ( 테크넷 바로가기 : FOR XML )


쿼리 

SELECT 1 as 'TAG'
, NULL as Parent
, cityEnm as [City!1!name]
, cityCd as [City!1!CityCode!cdata]
FROM tblcity  
FOR XML explicit


결과 

a.png


explicit 문법은 말보단 아래 예를 보시면 이해가 빠릅니다. 

IC698414.gif


?

  1. Deletes nodes from an XML instance. 특정 노드 삭제

    Date2015.09.24 Bykay Views864
    Read More
  2. unix_timestamp 을 MSSQL 상에서 YYYY-MM-DD hh:mm:ss 포맷으로 상호 변환

    Date2015.08.26 Bykay Views1509
    Read More
  3. MSSQL 쿼리로 CSV 파일 데이터 업로드 하는 방법 ( BULK INSERT )

    Date2015.07.30 Bykay Views2299
    Read More
  4. SQL Server Management Studio(SSMS) 메모리 점유율 문제

    Date2015.07.13 Bykay Views1730
    Read More
  5. ASP ADODB 연결 상태 체크

    Date2015.04.13 Bykay Views1297
    Read More
  6. ssms Ctrl+E 단축키로 쿼리 실행하기

    Date2015.04.03 Bykay Views4423
    Read More
  7. [펌] 개인정보 보호를 위한 SQL Server 보안 가이드

    Date2014.08.12 Bykay Views1532
    Read More
  8. MS-SQL 에서 연결된 서버 (Linked Server )에 MY-SQL DataBase 서버 등록하기

    Date2014.07.15 Bykay Views4732
    Read More
  9. MS-SQL 랜덤정렬 " NEWID() "

    Date2014.04.23 Bykay Views5452
    Read More
  10. ORDER BY CASE WHEN 정렬하기

    Date2014.03.12 Bykay Views6453
    Read More
  11. MS-SQL 설치 후 sa 로그인 활성화

    Date2014.02.20 Bykay Views3548
    Read More
  12. 특정 사용자에게 특정 테이블 , 뷰테이블 등.. 권한주기

    Date2014.02.12 Bykay Views9934
    Read More
  13. FOR XML을 이용해서 SQL 데이터로 XML 생성하기

    Date2013.12.18 Bykay Views3537
    Read More
  14. Collation 충돌 해결 및 Collation 변경

    Date2013.12.17 Bykay Views6901
    Read More
  15. SQL Server 상태 모니터링

    Date2013.11.14 Bykay Views11425
    Read More
  16. [담아온글] 문서화 되지 않은 시스템 저장프로시저

    Date2013.10.29 Bykay Views2559
    Read More
  17. 단어 자동 완성(IntelliSense) 옵션 활성화 및 해제하기

    Date2013.10.08 Bykay Views7367
    Read More
  18. "sys.dm_exec_connections" SQL 서버 connection 정보 확인하기

    Date2013.09.09 Bykay Views2822
    Read More
  19. 테이블 존재 확인하기

    Date2013.09.09 Bykay Views3139
    Read More
  20. 단순 DB 온라인/오프라인 상태 체크하기

    Date2013.08.27 Bykay Views3190
    Read More
Board Pagination Prev 1 2 3 Next
/ 3