XML 서식 파일 샘플

업데이트: 2006년 7월 17일

이 항목의 예에서는 XML 서식 파일 사용에 관련된 중요한 내용을 설명합니다. 서식 파일의 구문은 작업 방향과는 무관합니다. 즉, 대량 내보내기와 대량 가져오기의 구문은 동일합니다.

이 예에서는 다음을 설명합니다.

  • 테이블 열과 동일하게 문자 데이터 필드 정렬
  • 데이터 필드와 테이블 열을 서로 다르게 정렬
  • 데이터 필드 생략
  • 다양한 형식의 필드를 열에 매핑
  • XML 데이터를 테이블에 매핑
  • 고정 길이 또는 고정 너비 필드 가져오기

[!참고] 서식 파일을 만드는 방법은 서식 파일 만들기를 참조하십시오.

다음 예의 데이터 파일에서 <tab>은 데이터 파일의 탭 문자를 나타내며 <return>은 캐리지 리턴을 나타냅니다.

1. 테이블 열과 동일하게 문자 데이터 필드 정렬

다음 예에서는 3개의 문자 데이터 필드가 포함된 데이터 파일을 설명하는 XML 서식 파일을 보여 줍니다. 서식 파일은 데이터 파일을 3개의 열이 포함된 테이블로 매핑합니다. 데이터 필드는 테이블 열과 일대일로 대응합니다.

테이블(행): Person (Age int, FirstName varchar(20), LastName varchar(30))

데이터 파일(레코드): Age<tab>Firstname<tab>Lastname<return>

다음 XML 서식 파일은 데이터 파일의 데이터를 테이블로 읽어 옵니다.

서식 파일은 <RECORD> 요소에서 3개의 필드에 있는 데이터 값을 문자 데이터로 표현합니다. 각 필드에서 TERMINATOR 특성은 데이터 값 다음에 오는 종결자를 나타냅니다.

데이터 필드는 테이블 열과 일대일로 대응합니다. 서식 파일은 <ROW> 요소의 Age 열을 첫 번째 필드에, FirstName 열을 두 번째 필드에, LastName 열을 세 번째 필드에 매핑합니다.

<?xml version="1.0"?>
<BCPFORMAT 
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <RECORD>
    <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t" 
      MAX_LENGTH="12"/> 
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" 
      MAX_LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n" 
      MAX_LENGTH="30" 
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  </RECORD>
  <ROW>
    <COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
    <COLUMN SOURCE="2" NAME="firstname" xsi:type="SQLVARYCHAR"/>
    <COLUMN SOURCE="3" NAME="lastname" xsi:type="SQLVARYCHAR"/>
  </ROW>
</BCPFORMAT>

[!참고] 여기에 해당되는 AdventureWorks의 예는 서식 파일 만들기를 참조하십시오.

2. 데이터 필드와 테이블 열을 서로 다르게 정렬

다음 예에서는 3개의 문자 데이터 필드가 포함된 데이터 파일을 설명하는 XML 서식 파일을 보여 줍니다. 서식 파일은 데이터 파일을 데이터 파일의 필드와 다르게 정렬된 3개의 열을 포함하는 테이블로 매핑합니다.

테이블(행): Person (Age int, FirstName varchar(20), LastName varchar(30))

데이터 파일(레코드): Age<tab>Lastname<tab>Firstname<return>

서식 파일은 <RECORD> 요소에서 3개의 필드에 있는 데이터 값을 문자 데이터로 표현합니다.

서식 파일은 <ROW> 요소의 Age 열을 첫 번째 필드에, FirstName 열을 세 번째 필드에, LastName 열을 두 번째 필드에 매핑합니다.

이 예에서는 주목할 부분이 굵게 표시되어 있습니다.

<?xml version="1.0"?>
<BCPFORMAT 
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <RECORD>
    <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t" 
      MAX_LENGTH="12"/>
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="20" 
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n" 
      MAX_LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  </RECORD>
  <ROW>
    <COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
    <COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>
    <COLUMN SOURCE="2" NAME="lastname" xsi:type="SQLVARYCHAR"/>
  </ROW>
</BCPFORMAT>

[!참고] 여기에 해당되는 AdventureWorks의 예는 서식 파일을 사용하여 테이블 열을 데이터 파일 필드에 매핑을 참조하십시오.

3. 데이터 필드 생략

다음 예에서는 4개의 문자 데이터 필드가 포함된 데이터 파일을 설명하는 XML 서식 파일을 보여 줍니다. 서식 파일은 데이터 파일을 3개의 열이 포함된 테이블로 매핑합니다. 두 번째 데이터 필드는 대응되는 테이블 열이 없습니다.

테이블(행): Person (Age int, FirstName Varchar(20), LastName Varchar(30))

데이터 파일(레코드): Age<tab>employeeID<tab>Firstname<tab>Lastname<return>

서식 파일은 <RECORD> 요소에서 4개의 필드에 있는 데이터 값을 문자 데이터로 표현합니다. 각 필드에서 TERMINATOR 특성은 데이터 값 다음에 오는 종결자를 나타냅니다.

서식 파일은 <ROW> 요소의 Age 열을 첫 번째 필드에, FirstName 열을 세 번째 필드에, LastName 열을 네 번째 필드에 매핑합니다.

이 예에서는 주목할 부분이 굵게 표시되어 있습니다.

<?xml version="1.0"?> 
<BCPFORMAT 
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <RECORD>
    <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t" 
      MAX_LENGTH="12"/>
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" 
      MAX_LENGTH="10" 
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\t" 
      MAX_LENGTH="20" 
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
    <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" 
      MAX_LENGTH="30" 
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  </RECORD>
  <ROW>
    <COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
    <COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>
    <COLUMN SOURCE="4" NAME="lastname" xsi:type="SQLVARYCHAR"/>
  </ROW>
</BCPFORMAT>

[!참고] 여기에 해당되는 AdventureWorks의 예는 서식 파일을 사용하여 데이터 필드 건너뛰기를 참조하십시오.

4. <FIELD> xsi:type을 <COLUMN> xsi:type로 매핑

다음 예에서는 다양한 형식의 필드와 함께 해당 필드와 열의 매핑을 보여 줍니다.

<?xml version = "1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <RECORD>
      <FIELD xsi:type="CharTerm" ID="C1" TERMINATOR="\t" 
            MAX_LENGTH="4"/>
      <FIELD xsi:type="CharFixed" ID="C2" LENGTH="10" 
         COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
      <FIELD xsi:type="CharPrefix" ID="C3" PREFIX_LENGTH="2" 
         MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
      <FIELD xsi:type="NCharTerm" ID="C4" TERMINATOR="\t" 
         MAX_LENGTH="4"/>
      <FIELD xsi:type="NCharFixed" ID="C5" LENGTH="10" 
         COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
      <FIELD xsi:type="NCharPrefix" ID="C6" PREFIX_LENGTH="2" 
         MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
      <FIELD xsi:type="NativeFixed" ID="C7" LENGTH="4"/>
   </RECORD>
   <ROW>
      <COLUMN SOURCE="C1" NAME="Age" xsi:type="SQLTINYINT"/>
      <COLUMN SOURCE="C2" NAME="FirstName" xsi:type="SQLVARYCHAR" 
      LENGTH="16" NULLABLE="NO"/>
      <COLUMN SOURCE="C3" NAME="LastName" />
      <COLUMN SOURCE="C4" NAME="Salary" xsi:type="SQLMONEY"/>
      <COLUMN SOURCE="C5" NAME="Picture" xsi:type="SQLIMAGE"/>
      <COLUMN SOURCE="C6" NAME="Bio" xsi:type="SQLTEXT"/>
      <COLUMN SOURCE="C7" NAME="Interest"xsi:type="SQLDECIMAL" 
      PRECISION="5" SCALE="3"/>
   </ROW>
</BCPFORMAT>

5. XML 데이터를 테이블에 매핑

다음 예에서는 두 개의 빈 열을 가진 테이블(t_xml)을 만듭니다. 테이블의 첫 번째 열은 int 데이터 형식에, 두 번째 열은 xml 데이터 형식에 매핑됩니다.

CREATE TABLE t_xml (c1 int, c2 xml)

다음 XML 서식 파일에서는 t_xml 테이블에 데이터 파일을 로드합니다.

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="NativePrefix" PREFIX_LENGTH="1"/>
  <FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="8"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="c1" xsi:type="SQLINT"/>
  <COLUMN SOURCE="2" NAME="c2" xsi:type="SQLNCHAR"/>
 </ROW>
</BCPFORMAT>

6. 고정 길이 또는 고정 너비 필드 가져오기

다음 예에서는 10자 또는 6자의 각 고정 필드에 대해 설명합니다. 서식 파일은 이러한 필드 길이/너비를 각각 LENGTH="10"LENGTH="6"으로 나타냅니다. 데이터 파일의 모든 행은 캐리지 리턴-줄 바꿈 조합 {CR}{LF}로 끝나며 서식 파일은 이를 TERMINATOR="\r\n"으로 나타냅니다.

<?xml version="1.0"?>
<BCPFORMAT
       xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <RECORD>
    <FIELD ID="1" xsi:type="CharFixed" LENGTH="10"/>
    <FIELD ID="2" xsi:type="CharFixed" LENGTH="6"/>
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"
  </RECORD>
  <ROW>
    <COLUMN SOURCE="1" NAME="C1" xsi:type="SQLINT" />
    <COLUMN SOURCE="2" NAME="C2" xsi:type="SQLINT" />
  </ROW>
</BCPFORMAT>

추가 예

비 XML 서식 파일과 XML 서식 파일의 추가 예를 보려면 다음 항목을 참조하십시오.

참고 항목

개념

XML 서식 파일 이해
비-XML 서식 파일 이해
XML 서식 파일의 스키마 구문
서식 파일 작업

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 7월 17일

새로운 내용
  • 예 "6. 고정 길이 또는 고정 너비 필드 가져오기"를 추가했습니다.

2006년 4월 14일

새로운 내용
  • 대량 가져오기 중에 필드를 열에 매핑하는 XML 서식 파일의 예가 포함된 다른 항목에 대한 링크를 추가했습니다.