본문 바로가기
데이터베이스/MSSQL

MSSQL 쿼리 결과 XML로 변환하기

by Dokon Jang 2016. 10. 27.
반응형

MSSQL에서 쿼리를 수행 후 나온 결과를 XML로 활용 할 때 사용하면 좋은 Tip입니다.

 

1. XML Node에 각 컬럼을 Attribute로 변환

- SELECT 쿼리 마지막에 FOR XML RAW('NodeName')를 하면 XML로 변환된다.

[쿼리]

SELECT * 
  FROM INFORMATION_SCHEMA.TABLES
FOR XML RAW('TABLE')
 

[결과]

<TABLE TABLE_CATALOG="SN2126_LPM_MDB" TABLE_SCHEMA="dbo" TABLE_NAME="CUHASBP_VSpring3200_TypeAOV" TABLE_TYPE="VIEW" />
<TABLE TABLE_CATALOG="SN2126_LPM_MDB" TABLE_SCHEMA="dbo" TABLE_NAME="CUHASBP_StdLongTanUBoltIIV" TABLE_TYPE="VIEW" />
 

 

2. XML Root 지정하여 변환하기

- SELECT 쿼리 마지막에 FOR XML RAW('NodeName'), ROOT('RootName')를 하면 XML로 변환된다.

[쿼리]

SELECT * 
  FROM INFORMATION_SCHEMA.TABLES
FOR XML RAW('TABLE'), ROOT('TABLES')
 

[결과]

<TABLES>
  <TABLE TABLE_CATALOG="SN2126_LPM_MDB" TABLE_SCHEMA="dbo" TABLE_NAME="CUHASBP_VSpring3200_TypeAOV" TABLE_TYPE="VIEW" />
  <TABLE TABLE_CATALOG="SN2126_LPM_MDB" TABLE_SCHEMA="dbo" TABLE_NAME="CUHASBP_StdLongTanUBoltIIV" TABLE_TYPE="VIEW" />
</TABLES>
 

 

3. 각 컬럼을 Node로 변환하기

- SELECT 쿼리 마지막에 FOR XML RAW('NodeName'), ELEMENTS를 하면 XML로 변환된다.

[쿼리]

SELECT * 
  FROM INFORMATION_SCHEMA.TABLES
FOR XML RAW('TABLE'), ELEMENTS
 

[결과]

<TABLE>
  <TABLE_CATALOG>SN2126_LPM_MDB</TABLE_CATALOG>
  <TABLE_SCHEMA>dbo</TABLE_SCHEMA>
  <TABLE_NAME>CUHASBP_VSpring3200_TypeAOV</TABLE_NAME>
  <TABLE_TYPE>VIEW</TABLE_TYPE>
</TABLE>
<TABLE>
  <TABLE_CATALOG>SN2126_LPM_MDB</TABLE_CATALOG>
  <TABLE_SCHEMA>dbo</TABLE_SCHEMA>
  <TABLE_NAME>CUHASBP_StdLongTanUBoltIIV</TABLE_NAME>
  <TABLE_TYPE>VIEW</TABLE_TYPE>
</TABLE>
 

 

4. XML에 Root Node를 지정하고, 각 컬럼을 Node로 변환하기

[쿼리]

SELECT * 
  FROM INFORMATION_SCHEMA.TABLES
FOR XML RAW('TABLE'), ROOT('ROOT'), ELEMENTS
 

[결과]

<ROOT>
  <TABLE>
    <TABLE_CATALOG>SN2126_LPM_MDB</TABLE_CATALOG>
    <TABLE_SCHEMA>dbo</TABLE_SCHEMA>
    <TABLE_NAME>CUHASBP_VSpring3200_TypeAOV</TABLE_NAME>
    <TABLE_TYPE>VIEW</TABLE_TYPE>
  </TABLE>
  <TABLE>
    <TABLE_CATALOG>SN2126_LPM_MDB</TABLE_CATALOG>
    <TABLE_SCHEMA>dbo</TABLE_SCHEMA>
    <TABLE_NAME>CUHASBP_StdLongTanUBoltIIV</TABLE_NAME>
    <TABLE_TYPE>VIEW</TABLE_TYPE>
  </TABLE>
</ROOT>
 

 

반응형

댓글