XML 서식 파일(SQL Server)XML Format Files (SQL Server)

SQL Server 2017SQL Server 2017 에서는 테이블에 데이터를 대량으로 가져오는 데 사용할 XML 형식 파일 SQL ServerSQL Server 을 작성하기 위한 구문을 정의하는 XML 스키마를 제공합니다. provides an XML schema that defines syntax for writing XML format files to use for bulk importing data into a SQL ServerSQL Server table. XML 서식 파일은 XSDL(XML Schema Definition Language)에 정의되어 있는 이 스키마에 충실해야 합니다.XML format files must adhere to this schema, which is defined in the XML Schema Definition Language (XSDL). XML 서식 파일은 SQL ServerSQL Server 도구를 SQL ServerSQL Server Native Client와 함께 설치한 경우에만 지원됩니다.XML format files are only supported when SQL ServerSQL Server tools are installed together with SQL ServerSQL Server Native Client.

XML 서식 파일은 bcp 명령, BULK INSERT 문 또는 INSERT ... SELECT * FROM OPENROWSET(BULK...)과 함께 사용할 수 있습니다.You can use an XML format file with a bcp command, BULK INSERT statement, or INSERT ... SELECT * FROM OPENROWSET(BULK...) statement. bcp 명령을 사용하면 테이블에 대해 XML 형식 파일을 자동으로 생성할 수 있습니다. 자세한 내용은 bcp Utility를 참조하세요.The bcp command allows you to automatically generate an XML format file for a table; for more information, see bcp Utility.

참고

비 XML 서식 파일XML 서식 파일의 두 가지 서식 파일 유형을 대량으로 내보내고 가져올 수 있습니다.Two types of format files are supported for bulk exporting and importing: non-XML format files and XML format files. XML 서식 파일은 비 XML 서식 파일 대신 사용할 수 있는 보다 융통성 있고 강력한 파일 유형입니다.XML format files provide a flexible and powerful alternative to non-XML format files. 비 XML 서식 파일에 대한 자세한 내용은 비 XML 서식 파일(SQL Server)를 참조하세요.For information about non-XML format files, see Non-XML Format Files (SQL Server).

항목 내용:In This Topic:

XML 형식 파일의 이점 Benefits of XML Format Files

  • XML 형식 파일은 자체 설명적인 파일로, 쉽게 읽고 만들고 확장할 수 있습니다.XML format files are self-describing, making them easy to read, create, and extend. 또한 사람이 읽을 수 있는 형태이기 때문에 대량 작업 중에 데이터가 해석되는 방식을 쉽게 이해할 수 있습니다.They are human readable, making it easy to understand how data is interpreted during bulk operations.

  • XML 형식 파일에는 대상 열의 데이터 형식이 포함됩니다.XML format files contain the data types of target columns. XML 인코딩은 데이터 파일의 데이터 형식과 데이터 요소뿐만 아니라 데이터 요소와 테이블 열 간의 매핑도 명확하게 설명합니다.The XML encoding clearly describes the data types and data elements of the data file and also the mapping between data elements and table columns.

    이 특성은 데이터 파일에 데이터가 기록된 방식과 파일 내의 각 필드와 연결된 데이터 형식을 달리 지정할 수 있게 해줍니다.This enables separation between how data is represented in the data file and what data type is associated with each field in the file. 예를 들어 데이터 파일이 데이터의 문자 표시를 포함하면 해당 SQL 열 형식은 무시됩니다.For example, if a data file contains a character representation of the data, the corresponding SQL column type is lost.

  • XML 형식 파일을 사용하면 데이터 파일에서 단일 LOB(Large Object) 데이터 형식이 포함된 필드를 로드할 수 있습니다.An XML format file allows for loading of a field that contains a single large object (LOB) data type from a data file.

  • XML 서식 파일은 이전 버전과의 호환성을 유지하면서 향상될 수 있습니다.An XML format file can be enhanced yet remain compatible with its earlier versions. 또한 XML 인코딩은 명확하기 때문에 지정된 데이터 파일에 대해 다수의 서식 파일을 쉽게 만들 수 있습니다.Furthermore, the clarity of XML encoding facilitates the creation of multiple format files for a given data file. 데이터 필드 전체나 일부를 서로 다른 테이블이나 뷰에 매핑해야 하는 경우 이 기능이 유용합니다.This is useful if you have to map all or some of the data fields to columns in different tables or views.

  • XML 구문은 작업 방향과 무관합니다. 즉, 대량 내보내기와 대량 가져오기의 구문은 동일합니다.The XML syntax is independent of the direction of the operation; that is, the syntax is the same for bulk export and bulk import.

  • XML 서식 파일을 사용하여 데이터를 대량으로 테이블이나 파티션이 없는 뷰로 가져오고 내보낼 수 있습니다.You can use XML format files to bulk import data into tables or non-partitioned views and to bulk export data.

  • OPENROWSET(BULK...) 함수의 경우 대상 테이블 지정은 선택 사항입니다.For the OPENROWSET(BULK...) function specifying a target table is optional. 이 함수는 XML 형식 파일을 이용하여 데이터 파일에서 데이터를 읽기 때문입니다.This is because the function relies on the XML format file to read data from a data file.

    참고

    bcp 명령과 BULK INSERT 문의 경우 대상 테이블 열을 사용하여 형식 변환을 수행하므로 대상 테이블이 필요합니다.A target table is necessary with the bcp command and the BULK INSERT statement, which uses the target table columns to do the type conversion.

XML 서식 파일의 구조 Structure of XML Format Files

비 XML 서식 파일과 마찬가지로 XML 서식 파일도 데이터 파일의 데이터 필드 형식과 구조를 정의하며 해당 데이터 필드를 단일 대상 테이블의 열에 매핑합니다.Like a non-XML format file, an XML format file defines the format and structure of the data fields in a data file and maps those data fields to columns in a single target table.

XML 서식 파일에는 두 개의 주요 구성 요소 <RECORD>와 <ROW>가 있습니다.An XML format file possesses two main components, <RECORD> and <ROW>:

  • <RECORD>는 데이터 파일에 저장되어 있는 데이터를 설명합니다.<RECORD> describes the data as it is stored in the data file.

    각 <RECORD> 요소는 하나 이상의 <FIELD> 요소 집합을 포함합니다.Each <RECORD> element contains a set of one or more <FIELD> elements. 이러한 요소는 데이터 파일의 필드에 해당합니다.These elements correspond to fields in the data file. 기본 구문은 다음과 같습니다.The basic syntax is as follows:

    <RECORD><RECORD>

    <FIELD .../> [ ...n ]<FIELD .../> [ ...n ]

    </RECORD></RECORD>

    각 <FIELD> 요소는 특정 데이터 필드의 콘텐츠를 설명합니다.Each <FIELD> element describes the contents of a specific data field. 필드 하나는 테이블의 열 하나에만 매핑할 수 있지만A field can only be mapped to one column in the table. 모든 필드를 열에 매핑해야 하는 것은 아닙니다.Not all fields need to be mapped to columns.

    데이터 파일의 필드는 고정/가변 길이이거나 종료된 문자일 수 있습니다.A field in a data file can be either of fixed/variable length or character terminated. 필드 값 은 문자(1바이트 표현 사용), 와이드 문자(유니코드 2바이트 표현 사용), 네이티브 데이터베이스 형식 또는 파일 이름으로 표현될 수 있습니다.A field value can be represented as: a character (using single-byte representation), a wide character (using Unicode two-byte representation), native database format, or a file name. 필드 값이 파일 이름으로 표현되는 경우 파일 이름은 대상 테이블의 BLOB 열 값이 포함된 파일을 가리킵니다.If a field value is represented as a file name, the file name points to the file that contains the value of a BLOB column in the target table.

  • <ROW>는 파일의 데이터를 SQL ServerSQL Server 테이블로 가져올 때 데이터 파일의 데이터 행을 구성하는 방법을 설명합니다.<ROW> describes how to construct data rows from a data file when the data from the file is imported into a SQL ServerSQL Server table.

    <ROW> 요소에는 <COLUMN> 열 집합이 포함됩니다.A <ROW> element contains a set of <COLUMN> elements. 이러한 요소는 테이블 열에 해당합니다.These elements correspond to table columns. 기본 구문은 다음과 같습니다.The basic syntax is as follows:

    <ROW><ROW>

    <COLUMN .../> [ ...n ]<COLUMN .../> [ ...n ]

    </ROW></ROW>

    각 <COLUMN> 요소는 데이터 파일의 필드 하나에만 매핑할 수 있습니다.Each <COLUMN> element can be mapped to only one field in the data file. <ROW> 요소에서 <COLUMN> 요소의 순서에 따라 대량 작업에서 반환되는 순서가 정의됩니다.The order of the <COLUMN> elements in the <ROW> element defines the order in which they are returned by the bulk operation. XML 서식 파일은 각 <COLUMN> 요소에 대량 가져오기 작업의 대상 테이블에 있는 열과 관계가 없는 로컬 이름을 지정합니다.The XML format file assigns each <COLUMN> element a local name that has no relationship to the column in the target table of a bulk import operation.

XML 서식 파일의 스키마 구문 Schema Syntax for XML Format Files

이 섹션에서는 XML 형식 파일의 XML 스키마 요소 및 특성에 대한 요약을 제공합니다.This section contains a summary of the elements and attributes of the XML schema for XML format files. 서식 파일의 구문은 작업 방향과는 무관합니다. 즉, 대량 내보내기와 대량 가져오기의 구문은 동일합니다.The syntax of a format file is independent of the direction of the operation; that is, the syntax is the same for bulk export and bulk import. 또한 이 섹션에서는 대량 가져오기에서 <ROW> 및 <COLUMN> 요소를 사용하는 방법과 요소의 xsi:type 값을 데이터 집합에 포함시키는 방법에 대해 설명합니다.This section also considers how bulk import uses the <ROW> and <COLUMN> elements and how to put the xsi:type value of an element into a data set.

구문이 실제 XML 형식 파일과 일치하는지 보려면 이 항목 뒷부분에 있는 예제 XML 형식 파일을 참조하세요.To see how the syntax corresponds to actual XML format files, see Sample XML Format Files, later in this topic.

참고

필드와 테이블 열의 번호 또는 순서가 서로 다른 데이터 파일로부터 대량 가져오기를 수행하도록 서식 파일을 수정할 수 있습니다.You can modify a format file to let you bulk import from a data file in which the number and/or order of the fields differ from the number and/or order of table columns. 자세한 내용은 데이터를 가져오거나 내보내기 위한 서식 파일(SQL Server)를 참조하세요.For more information, see Format Files for Importing or Exporting Data (SQL Server).

섹션 내용In This Section:

XML 스키마의 기본 구문 Basic Syntax of the XML Schema

이 문의 구문에서는 요소(<BCPFORMAT>, <RECORD>, <FIELD>, <ROW>, <COLUMN>) 및 그 기본 특성만 보여 줍니다.This syntax statements show only the elements (<BCPFORMAT>, <RECORD>, <FIELD>, <ROW>, and <COLUMN>) and their basic attributes.

<BCPFORMAT ...><BCPFORMAT ...>

<RECORD><RECORD>

<FIELD ID = "fieldID" xsi:type = "fieldType" [...]<FIELD ID = "fieldID" xsi:type = "fieldType" [...]

/>

</RECORD></RECORD>

<ROW><ROW>

<COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...]<COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...]

/>

</ROW></ROW>

</BCPFORMAT></BCPFORMAT>

참고

<FIELD> 또는 <COLUMN> 요소의 xsi:type 값과 연관된 추가 특성은 이 항목의 뒷부분에서 설명합니다.Additional attributes that are associated with the value of the xsi:type in a <FIELD> or <COLUMN> element are described later in this topic.

섹션 내용In This Section:

스키마 요소 Schema Elements

이 섹션에서는 XML 스키마가 XML 서식 파일에 대해 정의하는 각 요소의 목적에 대해 요약합니다.This section summarizes the purpose of each element that the XML schema defines for XML format files. 특성은 뒷부분의 다른 섹션에서 설명합니다.The attributes are described in separate sections later in this topic.

<BCPFORMAT><BCPFORMAT>
지정된 데이터 파일의 레코드 구조와 테이블 행의 열과의 일치를 정의하는 서식 파일 요소입니다.Is the format-file element that defines the record structure of a given data file and its correspondence to the columns of a table row in the table.

<RECORD .../><RECORD .../>
하나 이상의 <FIELD> 요소를 포함하는 복잡한 요소를 정의합니다.Defines a complex element containing one or more <FIELD> elements. 서식 파일에서 필드가 선언되는 순서는 이들 필드가 데이터 파일에 나열되는 순서입니다.The order in which the fields are declared in the format file is the order in which those fields appear in the data file.

<FIELD .../><FIELD .../>
데이터를 포함하는 데이터 파일의 필드를 정의합니다.Defines a field in data file, which contains data.

이 요소의 특성은 이 항목의 뒷부분에 나오는 <FIELD> 요소의 특성에서 설명합니다.The attributes of this element are discussed in Attributes of the <FIELD> Element, later in this topic.

<ROW .../><ROW .../>
하나 이상의 <COLUMN> 요소를 포함하는 복잡한 요소를 정의합니다.Defines a complex element containing one or more <COLUMN> elements. <COLUMN> 요소의 순서는 RECORD 정의에 있는 <FIELD> 요소의 순서와는 독립적입니다.The order of the <COLUMN> elements is independent of the order of <FIELD> elements in a RECORD definition. 반면, 서식 파일에 있는 <COLUMN> 요소의 순서는 결과 행 집합의 열 순서를 결정합니다.Rather, the order of the <COLUMN> elements in a format file determines the column order of the resultant rowset. 데이터 필드는 해당 <COLUMN> 요소가 <COLUMN> 요소에서 선언되는 순서대로 로드됩니다.Data fields are loaded in the order in which the corresponding <COLUMN> elements are declared in the <COLUMN> element.

자세한 내용은 뒷부분의 대량 가져오기의 <ROW> 요소 사용 방법을 참조하세요.For more information, see How Bulk Import Uses the <ROW> Element, later in this topic.

<COLUMN><COLUMN>
열을 요소(<COLUMN>)로 정의합니다.Defines a column as an element (<COLUMN>). 각 <COLUMN> 요소는 ID가 <COLUMN> 요소의 SOURCE 특성에서 지정되는 <FIELD> 요소에 해당합니다.Each <COLUMN> element corresponds to a <FIELD> element (whose ID is specified in the SOURCE attribute of the <COLUMN> element).

이 요소의 특성은 이 항목의 뒷부분에 나오는 <COLUMN> 요소의 특성에서 설명합니다.The attributes of this element are discussed in Attributes of the <COLUMN> Element, later in this topic. 자세한 내용은 뒷부분의 대량 가져오기의 <COLUMN> 요소를 사용하는 방법을 참조하세요.Also see, How Bulk Import Uses the <COLUMN> Element, later in this topic.

</BCPFORMAT></BCPFORMAT>
서식 파일을 끝내는 데 필요합니다.Required to end the format file.

<FIELD> 요소의 특성 Attributes of the <FIELD> Element

이 섹션에서는 <FIELD> 요소의 특성에 대해 설명합니다. 다음 스키마 구문으로 요약할 수 있습니다.This section describes the attributes of the <FIELD> element, which are summarized in the following schema syntax:

<FIELD<FIELD

ID ="fieldID"ID ="fieldID"

xsi:type ="fieldType"xsi:type ="fieldType"

[ LENGTH ="n" ][ LENGTH ="n" ]

[ PREFIX_LENGTH ="p" ][ PREFIX_LENGTH ="p" ]

[ MAX_LENGTH ="m" ][ MAX_LENGTH ="m" ]

[ COLLATION ="collationName" ][ COLLATION ="collationName" ]

[ TERMINATOR ="terminator" ][ TERMINATOR ="terminator" ]

/>

각 <FIELD> 요소는 다른 요소와는 독립적입니다.Each <FIELD> element is independent of the others. 필드는 다음 특성에 따라 설명됩니다.A field is described in terms of the following attributes:

FIELD 특성FIELD Attribute 설명Description 선택 /Optional /

필수임Required
ID ="fieldID"ID ="fieldID" 데이터 파일에서 필드의 논리적 이름을 지정합니다.Specifies the logical name of the field in the data file. 필드의 ID는 필드를 참조하는 데 사용되는 키입니다.The ID of a field is the key used to refer to the field.

<FIELD ID="fieldID"/>는 <COLUMN SOURCE="fieldID"/>에 매핑됩니다.<FIELD ID="fieldID"/> maps to <COLUMN SOURCE="fieldID"/>
필수임Required
xsi:type ="fieldType"xsi:type ="fieldType" 요소의 인스턴스 유형을 식별하는 XML 구문(특성처럼 사용)입니다.This is an XML construct (used like an attribute) that identifies the type of the instance of the element. fieldType 값은 지정한 인스턴스에서 필요한 옵션 특성(아래)을 결정합니다.The value of fieldType determines which of the optional attributes (below) you need in a given instance. 필수(데이터 형식에 따라 다름)Required (depending on the data type)
LENGTH ="n"LENGTH ="n" 이 특성은 고정 길이 데이터 형식의 인스턴스 길이를 정의합니다.This attribute defines the length for an instance of a fixed-length data type.

n 값은 양의 정수여야 합니다.The value of n must be a positive integer.
선택(xsi:type 값에서 필요로 하지 않는 경우)Optional unless required by the xsi:type value
PREFIX_LENGTH ="p"PREFIX_LENGTH ="p" 이 특성은 이진 데이터 표현의 접두사 길이를 정의합니다.This attribute defines the prefix length for a binary data representation. PREFIX_LENGTH 값인 p는 1, 2, 4 또는 8 중 하나를 사용해야 합니다.The PREFIX_LENGTH value, p, must be one of the following: 1, 2, 4, or 8. 선택(xsi:type 값에서 필요로 하지 않는 경우)Optional unless required by the xsi:type value
MAX_LENGTH ="m"MAX_LENGTH ="m" 이 특성은 지정된 필드에 저장할 수 있는 최대 바이트 수입니다.This attribute is the maximum number of bytes that can be stored in a given field. 대상 테이블이 없는 경우 열의 최대 길이를 알 수 없습니다.Without a target table, the column max-length is not known. MAX_LENGTH 특성은 출력 문자 열의 최대 길이를 제한하여 열 값에 할당된 저장소를 제한합니다.The MAX_LENGTH attribute restricts the maximum length of an output character column, limiting the storage allocated for the column value. 특히 SELECT FROM 절에서 OPENROWSET 함수의 BULK 옵션을 사용할 때 편리합니다.This is especially convenient when using the OPENROWSET function's BULK option in a SELECT FROM clause.

m 값은 양의 정수여야 합니다.The value of m must be a positive integer. 기본적으로 최대 길이는 char 열의 경우 8000자, nchar 열의 경우 4000자입니다.By default, the maximum length is 8000 characters for a char column and 4000 characters for an nchar column.
선택 사항Optional
COLLATION ="collationName"COLLATION ="collationName" COLLATION은 문자 필드에서만 사용할 수 있습니다.COLLATION is only allowed for character fields. SQL 데이터 정렬 이름 목록은 SQL Server 데이터 정렬 이름(Transact-SQL)을 참조하세요.For a list of the SQL collation names, see SQL Server Collation Name (Transact-SQL). 선택 사항Optional
TERMINATOR = "terminator"TERMINATOR = "terminator" 이 특성은 데이터 필드의 종결자를 지정합니다.This attribute specifies the terminator of a data field. 종결자는 어떠한 문자도 가능합니다.The terminator can be any character. 종결자는 데이터의 일부가 아닌 고유 문자여야 합니다.The terminator must be a unique character that is not part of the data.

기본적으로 필드 종결자는 탭 문자(\t로 표시)입니다.By default, the field terminator is the tab character (represented as \t). 단락 기호를 표시하려면 \r\n을 사용하세요.To represent a paragraph mark, use \r\n.
이 특성이 필요한 문자 데이터의 xsi:type에만 사용됩니다.Used only with an xsi:type of character data, which requires this attribute
<FIELD> 요소의 xsi:type 값 Xsi:type values of the <FIELD> Element

xsi:type 값은 요소 인스턴스의 데이터 형식을 식별하는 XML 구문(특성처럼 사용)입니다.The xsi:type value is an XML construct (used like an attribute) that identifies the data type of an instance of an element. xsi:type 값의 사용 방법은 이 섹션의 뒷부분에 나오는 "데이터 집합에 xsi:type 값 넣기"를 참조하세요.For information on using the "Putting the xsi:type Value into a Data Set," later in this section.

<FIELD> 요소의 xsi:type 값은 다음 데이터 형식을 지원합니다.The xsi:type value of the <FIELD> element supports the following data types.

<FIELD> xsi:type 값<FIELD> xsi:type values 데이터 형식의Required XML Attribute(s)

선택적 XML 특성for Data Type
데이터 형식의Optional XML Attribute(s)

선택적 XML 특성for Data Type
NativeFixedNativeFixed LENGTHLENGTH 없음None.
NativePrefixNativePrefix PREFIX_LENGTHPREFIX_LENGTH MAX_LENGTHMAX_LENGTH
CharFixedCharFixed LENGTHLENGTH COLLATIONCOLLATION
NCharFixedNCharFixed LENGTHLENGTH COLLATIONCOLLATION
CharPrefixCharPrefix PREFIX_LENGTHPREFIX_LENGTH MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION
NCharPrefixNCharPrefix PREFIX_LENGTHPREFIX_LENGTH MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION
CharTermCharTerm TERMINATORTERMINATOR MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION
NCharTermNCharTerm TERMINATORTERMINATOR MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION

MicrosoftMicrosoft SQL ServerSQL Server 데이터 형식에 대한 자세한 내용은 데이터 형식(Transact-SQL)을 참조하세요.For more information about MicrosoftMicrosoft SQL ServerSQL Server data types, see Data Types (Transact-SQL).

<COLUMN> 요소의 특성 Attributes of the <COLUMN> Element

이 섹션에서는 <COLUMN> 요소의 특성에 대해 설명합니다. 다음 스키마 구문으로 요약할 수 있습니다.This section describes the attributes of the <COLUMN> element, which are summarized in the following schema syntax:

<요소의 Xsi:type 값<COLUMN

SOURCE = "fieldID"SOURCE = "fieldID"

NAME = "columnName"NAME = "columnName"

xsi:type = "columnType"xsi:type = "columnType"

[ LENGTH = "n" ][ LENGTH = "n" ]

[ PRECISION = "n" ][ PRECISION = "n" ]

[ SCALE = "value" ][ SCALE = "value" ]

[ NULLABLE = { "YES"[ NULLABLE = { "YES"

"NO" } ]"NO" } ]

/>

필드는 다음 특성을 사용하여 대상 테이블의 열에 매핑됩니다.A field is mapped to a column in the target table using the following attributes:

COLUMN 특성COLUMN Attribute 설명Description 선택 /Optional /

필수임Required
SOURCE ="fieldID"SOURCE ="fieldID" 열에 매핑되는 필드의 ID를 지정합니다.Specifies the ID of the field being mapped to the column.

<COLUMN SOURCE="fieldID"/>는 <FIELD ID="fieldID"/>에 매핑됩니다.<COLUMN SOURCE="fieldID"/> maps to <FIELD ID="fieldID"/>
필수임Required
NAME = "columnName"NAME = "columnName" 서식 파일에 의해 표현된 행 집합의 열 이름을 지정합니다.Specifies the name of the column in the row set represented by the format file. 이 열 이름은 결과 집합에서 열을 식별하는 데 사용되며 대상 테이블에서 사용되는 열 이름과 일치할 필요는 없습니다.This column name is used to identify the column in the result set, and it need not correspond to the column name used in the target table. 필수임Required
xsi:type ="ColumnType"xsi:type ="ColumnType" 요소의 인스턴스 데이터 형식을 식별하는 XML 구문(특성처럼 사용)입니다.This is an XML construct (used like an attribute) that identifies the data type of the instance of the element. ColumnType 값은 지정한 인스턴스에서 필요한 옵션 특성(아래)을 결정합니다.The value of ColumnType determines which of the optional attributes (below) you need in a given instance.

참고: ColumnType의 가능한 값 및 관련 특성은 <COLUMN> 요소의 Xsi:type 값 섹션의 <COLUMN> 요소 테이블에 나와 있습니다.Note: The possible values of ColumnType and their associated attributes are listed in the <COLUMN> element table in the Xsi:type values of the <COLUMN> Element section.
선택 사항Optional
LENGTH ="n"LENGTH ="n" 고정 길이 데이터 형식의 인스턴스 길이를 정의합니다.Defines the length for an instance of a fixed-length data type. LENGTH는 xsi:type이 문자열 데이터 형식인 경우에만 사용됩니다.LENGTH is used only when the xsi:type is a string data type.

n 값은 양의 정수여야 합니다.The value of n must be a positive integer.
선택(xsi:type이 문자열 데이터 형식인 경우에만 사용 가능)Optional (available only if the xsi:type is a string data type)
PRECISION ="n"PRECISION ="n" 숫자의 전체 자릿수를 나타냅니다.Indicates the number of digits in a number. 예를 들어 123.45의 전체 자릿수는 5입니다.For example, the number 123.45 has a precision of 5.

값은 양의 정수여야 합니다.The value must be a positive integer.
선택(xsi:type이 가변 숫자 데이터 형식인 경우에만 사용 가능)Optional (available only if the xsi:type is a variable-number data type)
SCALE ="int"SCALE ="int" 숫자에서 소수점 이하 자릿수를 나타냅니다.Indicates the number of digits to the right of the decimal point in a number. 예를 들어 123.45의 소수 자릿수는 2입니다.For example, the number 123.45 has a scale of 2.

값은 정수여야 합니다.The value must be an integer.
선택(xsi:type이 가변 숫자 데이터 형식인 경우에만 사용 가능)Optional (available only if the xsi:type is a variable-number data type)
NULLABLE = { "YES"NULLABLE = { "YES"

"NO" }"NO" }
열이 NULL 값을 허용하는지 여부를 나타냅니다.Indicates whether a column can assume NULL values. 이 특성은 FIELDS와는 독립적입니다.This attribute is completely independent of FIELDS. 그러나 열이 NULLABLE이 아닌 경우 필드에서 NULL을 지정하면(아무 값도 지정하지 않음) 런타임 오류가 발생합니다.However, if a column is not NULLABLE and field specifies NULL (by not specifying any value), a run-time error results.

NULLABLE 특성은 일반 SELECT FROM OPENROWSET(BULK...) 문의 경우에만 사용됩니다.The NULLABLE attribute is used only if you do a plain SELECT FROM OPENROWSET(BULK...) statement.
선택 사항(모든 데이터 형식에 사용 가능)Optional (available for any data type)
<COLUMN> 요소의 xsi:type 값 Xsi:type values of the <COLUMN> Element

xsi:type 값은 요소 인스턴스의 데이터 형식을 식별하는 XML 구문(특성처럼 사용)입니다.The xsi:type value is an XML construct (used like an attribute) that identifies the data type of an instance of an element. xsi:type 값의 사용 방법은 이 섹션의 뒷부분에 나오는 "데이터 집합에 xsi:type 값 넣기"를 참조하세요.For information on using the "Putting the xsi:type Value into a Data Set," later in this section.

<COLUMN> 요소는 다음과 같이 원시 SQL 데이터 형식을 지원합니다.The <COLUMN> element supports native SQL data types, as follows:

형식 범주Type Category <COLUMN> 데이터 형식<COLUMN> Data Types 데이터 형식의Required XML Attribute(s)

선택적 XML 특성for Data Type
데이터 형식의Optional XML Attribute(s)

선택적 XML 특성for Data Type
고정Fixed SQLBIT, SQLTINYINT, SQLSMALLINT, SQLINT, SQLBIGINT, SQLFLT4, SQLFLT8, SQLDATETIME, SQLDATETIM4, SQLDATETIM8, SQLMONEY, SQLMONEY4, SQLVARIANTSQLUNIQUEIDSQLBIT, SQLTINYINT, SQLSMALLINT, SQLINT, SQLBIGINT, SQLFLT4, SQLFLT8, SQLDATETIME, SQLDATETIM4, SQLDATETIM8, SQLMONEY, SQLMONEY4, SQLVARIANT, and SQLUNIQUEID 없음None. NULLABLENULLABLE
가변 숫자Variable Number SQLDECIMALSQLNUMERICSQLDECIMAL and SQLNUMERIC 없음None. NULLABLE, PRECISION, SCALENULLABLE, PRECISION, SCALE
LOBLOB SQLIMAGE, CharLOB, SQLTEXTSQLUDTSQLIMAGE, CharLOB, SQLTEXT, and SQLUDT 없음None. NULLABLENULLABLE
문자 LOBCharacter LOB SQLNTEXTSQLNTEXT 없음None. NULLABLENULLABLE
이진 문자열Binary string SQLBINARYSQLVARYBINSQLBINARY and SQLVARYBIN 없음None. NULLABLE, LENGTHNULLABLE, LENGTH
문자열Character string SQLCHAR, SQLVARYCHAR, SQLNCHARSQLNVARCHARSQLCHAR, SQLVARYCHAR, SQLNCHAR, and SQLNVARCHAR 없음None. NULLABLE, LENGTHNULLABLE, LENGTH
중요

SQLXML 데이터를 대량으로 내보내거나 가져오려면 서식 파일에서 다음 데이터 형식 중 하나를 사용합니다. SQLCHAR 또는 SQLVARYCHAR(데이터 정렬에 의해 포함된 코드 페이지나 클라이언트 코드 페이지로 데이터가 전송됨), SQLNCHAR 또는 SQLNVARCHAR(데이터가 유니코드로 전송됨), SQLBINARY 또는 SQLVARYBIN(데이터가 변환되지 않고 전송됨) 데이터 형식 중 하나를 사용합니다.To bulk export or import SQLXML data, use one of the following data types in your format file: SQLCHAR or SQLVARYCHAR (the data is sent in the client code page or in the code page implied by the collation), SQLNCHAR or SQLNVARCHAR (the data is sent as Unicode), or SQLBINARY or SQLVARYBIN (the data is sent without any conversion).

SQL ServerSQL Server 데이터 형식에 대한 자세한 내용은 데이터 형식(Transact-SQL)을 참조하세요.For more information about SQL ServerSQL Server data types, see Data Types (Transact-SQL).

대량 가져오기에서 <ROW> 요소를 사용하는 방법 How Bulk Import Uses the <ROW> Element

일부 컨텍스트에서는 <ROW> 요소가 무시됩니다.The <ROW> element is ignored in some contexts. <ROW> 요소가 대량 가져오기 작업에 영향을 주는지 여부는 작업 수행 방법에 따라 달라질 수 있습니다.Whether the <ROW> element affects a bulk-import operation depends on how the operation is performed:

  • bcp 명령the bcp command

    데이터가 대상 테이블에 로드되면 bcp는 <ROW> 구성 요소를 무시합니다.When data is loaded into a target table, bcp ignores the <ROW> component. 대신 bcp 는 대상 테이블의 열 유형을 기반으로 하는 데이터를 로드합니다.Instead, bcp loads the data based on the column types of the target table.

  • Transact-SQLTransact-SQL 문(BULK INSERT 및 OPENROWSET의 대량 행 집합 공급자) statements (BULK INSERT and OPENROWSET's Bulk rowset provider)

    대량의 데이터를 테이블로 가져오는 경우 Transact-SQLTransact-SQL 문은 <ROW> 구성 요소를 사용하여 입력 행 집합을 생성합니다.When bulk importing data into a table, Transact-SQLTransact-SQL statements use the <ROW> component to generate the input rowset. 또한 Transact-SQLTransact-SQL 문은 <ROW>에서 지정된 열 유형과 대상 테이블에 있는 해당 열에 따라 적절한 형식 변환을 수행합니다.Also, Transact-SQLTransact-SQL statements perform appropriate type conversions based on the column types specified under <ROW> and the corresponding column in the target table. 서식 파일에서 지정된 열 유형과 대상 테이블에서 지정된 열 유형이 일치하지 않는 경우 추가 형식 변환이 수행됩니다.If a mismatch exists between column types as specified in the format file and in the target table, an extra type conversion occurs. bcp와 비교할 때 이 추가 형식 변환으로 인해 BULK INSERT 또는 OPENROWSET의 대량 행 집합 공급자 동작에서 다소 불일치(전체 자릿수 손실)가 발생할 수 있습니다.This extra type conversion may lead to some discrepancy (that is, a loss of precision) in behavior in BULK INSERT or OPENROWSET's Bulk rowset provider as compared to bcp.

    <ROW> 요소의 정보를 사용하면 추가 정보 없이 행을 생성할 수 있습니다.The information in the <ROW> element allows a row to be constructed without requiring any additional information. 따라서 SELECT 문(SELECT * FROM OPENROWSET(BULK datafile FORMATFILE=xmlformatfile)을 사용하여 행 집합을 생성할 수 있습니다.For this reason, you can generate a rowset using a SELECT statement (SELECT * FROM OPENROWSET(BULK datafile FORMATFILE=xmlformatfile).

    참고

    OPENROWSET BULK 절에는 서식 파일이 필요합니다. XML 서식 파일을 사용해야만 필드 데이터 형식에서 열 데이터 형식으로 변환할 수 있습니다.The OPENROWSET BULK clause requires a format file (note that converting from the data type of the field to the data type of a column is available only with an XML format file).

대량 가져오기에서 <COLUMN> 요소를 사용하는 방법 How Bulk Import Uses the <COLUMN> Element

대량의 데이터를 테이블로 가져오는 경우 서식 파일의 <COLUMN> 요소는 다음을 지정하여 데이터 파일 필드를 테이블 열에 매핑합니다.For bulk importing data into a table, the <COLUMN> elements in a format file map a data-file field to table columns by specifying:

  • 데이터 파일의 행 내의 각 필드 위치The position of each field within a row in the data file.

  • 필드 데이터 형식을 원하는 열 데이터 형식으로 변환하는 데 사용되는 열 유형The column type, which is used to convert the field data type to the desired column data type.

    열이 필드에 매핑되지 않으면 해당 필드는 생성된 행에 복사되지 않습니다.If no column is mapped to a field, the field is not copied into the generated row(s). 이 동작을 통해 데이터 파일은 다른 열(다른 테이블)을 포함하는 행을 생성할 수 있습니다.This behavior allows a data file to generate rows with different columns (in different tables).

    마찬가지로 테이블에서 데이터를 대량으로 내보내는 경우 서식 파일의 각 <COLUMN>은 입력 테이블 행의 열을 출력 데이터 파일의 해당 필드에 매핑합니다.Similarly, for bulk exporting data from a table, each <COLUMN> in the format file maps the column from the input table row to its corresponding field in the output data file.

데이터 집합에 xsi:type 값 넣기 Putting the xsi:type Value into a Data Set

XSD(XML 스키마 정의) 언어를 통해 XML 문서의 유효성이 검사된 경우 xsi:type 값을 데이터 집합에 넣을 수 없습니다.When an XML document is validated through the XML Schema Definition (XSD) language, the xsi:type value is not put into the data set. 그러나 다음 코드 조각의 설명과 같이 XML 서식 파일을 XML 문서(예: myDoc)에 로드하여 xsi:type 정보를 데이터 집합에 넣을 수 있습니다.However, you can put the xsi:type information into the data set by loading the XML format file into an XML document (for example, myDoc), as illustrated in the following code snippet:

...;  
myDoc.LoadXml(xmlFormat);  
XmlNodeList ColumnList = myDoc.GetElementsByTagName("COLUMN");  
for(int i=0;i<ColumnList.Count;i++)  
{  
   Console.Write("COLUMN: xsi:type=" +ColumnList[i].Attributes["type",  
      "http://www.w3.org/2001/XMLSchema-instance"].Value+"\n");  
}  

예제 XML 형식 파일 Sample XML Format Files

이 섹션에는 Adventure WorksAdventure Works 의 예를 포함하여 다양한 경우의 XML 형식 파일 사용에 대한 정보가 들어 있습니다.This section contains information on using XML format files in a variety of cases, including an Adventure WorksAdventure Works example.

참고

다음 예의 데이터 파일에서 <tab> 은 데이터 파일의 탭 문자를 나타내며 <return> 은 캐리지 리턴을 나타냅니다.In the data files shown in the following examples, <tab> indicates a tab character in a data file, and <return> indicates a carriage return.

이 예에서는 다음과 같은 XML 형식 파일 사용의 주요 측면을 설명합니다.The examples illustrate key aspects of using XML format files, as follows:

참고

서식 파일을 만드는 방법은 서식 파일 만들기(SQL Server)를 참조하세요.For information about how to create format files, see Create a Format File (SQL Server).

1. A. 테이블 열과 동일하게 문자 데이터 필드 정렬Ordering character-data fields the same as table columns

다음 예에서는 3개의 문자 데이터 필드가 포함된 데이터 파일을 설명하는 XML 서식 파일을 보여 줍니다.The following example shows an XML format file that describes a data file containing three fields of character data. 서식 파일은 데이터 파일을 3개의 열이 포함된 테이블로 매핑합니다.The format file maps the data file to a table that contains three columns. 데이터 필드는 테이블 열과 일 대 일로 대응합니다.The data fields correspond one-to-one with the columns of the table.

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

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

다음 XML 서식 파일은 데이터 파일의 데이터를 테이블로 읽어 옵니다.The following XML format file reads from the data file to the table.

서식 파일은 <RECORD> 요소에서 3개의 필드에 있는 데이터 값을 문자 데이터로 표현합니다.In the <RECORD> element, the format file represents the data values in all three fields as character data. 각 필드에서 TERMINATOR 특성은 데이터 값 다음에 오는 종결자를 나타냅니다.For each field, the TERMINATOR attribute indicates the terminator that follows the data value.

데이터 필드는 테이블 열과 일 대 일로 대응합니다.The data fields correspond one-to-one with the columns of the table. 서식 파일은 <ROW> 요소의 Age 열을 첫 번째 필드에, FirstName 열을 두 번째 필드에, LastName 열을 세 번째 필드에 매핑합니다.In the <ROW> element, the format file maps the column Age to the first field, the column FirstName to the second field, and the column LastName to the third field.

<?xml version="1.0"?>  
<BCPFORMAT   
xmlns="http://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>  
참고

해당하는 AdventureWorks2012AdventureWorks2012 예제는 서식 파일 만들기(SQL Server)를 참조하세요.For an equivalent AdventureWorks2012AdventureWorks2012 example, see Create a Format File (SQL Server).

2. B. 데이터 필드와 테이블 열을 서로 다르게 정렬Ordering data fields and table columns differently

다음 예에서는 3개의 문자 데이터 필드가 포함된 데이터 파일을 설명하는 XML 서식 파일을 보여 줍니다.The following example shows an XML format file that describes a data file containing three fields of character data. 서식 파일은 데이터 파일을 데이터 파일의 필드와 다르게 정렬된 3개의 열을 포함하는 테이블로 매핑합니다.The format file maps the data file to a table that contains three columns that are ordered differently from the fields of the data file.

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

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

서식 파일은 <RECORD> 요소에서 3개의 필드에 있는 데이터 값을 문자 데이터로 표현합니다.In the <RECORD> element, the format file represents the data values in all three fields as character data.

서식 파일은 <ROW> 요소의 Age 열을 첫 번째 필드에, FirstName 열을 세 번째 필드에, LastName 열을 두 번째 필드에 매핑합니다.In the <ROW> element, the format file maps the column Age to the first field, the column FirstName to the third field, and the column LastName to the second field.

<?xml version="1.0"?>  
<BCPFORMAT   
xmlns="http://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>  
참고

해당하는 AdventureWorks2012AdventureWorks2012 예제는 서식 파일을 사용하여 테이블 열을 데이터 파일 필드에 매핑(SQL Server)를 참조하세요.For an equivalent AdventureWorks2012AdventureWorks2012 example, see Use a Format File to Map Table Columns to Data-File Fields (SQL Server).

3. C. 데이터 필드 생략Omitting a data field

다음 예에서는 4개의 문자 데이터 필드가 포함된 데이터 파일을 설명하는 XML 서식 파일을 보여 줍니다.The following example shows an XML format file that describes a data file containing four fields of character data. 서식 파일은 데이터 파일을 3개의 열이 포함된 테이블로 매핑합니다.The format file maps the data file to a table that contains three columns. 두 번째 데이터 필드는 대응되는 테이블 열이 없습니다.The second data field does not correspond to any table column.

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

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

서식 파일은 <RECORD> 요소에서 4개의 필드에 있는 데이터 값을 문자 데이터로 표현합니다.In the <RECORD> element, the format file represents the data values in all four fields as character data. 각 필드에서 TERMINATOR 특성은 데이터 값 다음에 오는 종결자를 나타냅니다.For each field, the TERMINATOR attribute indicates the terminator that follows the data value.

서식 파일은 <ROW> 요소의 Age 열을 첫 번째 필드에, FirstName 열을 세 번째 필드에, LastName 열을 네 번째 필드에 매핑합니다.In the <ROW> element, the format file maps the column Age to the first field, the column FirstName to the third field, and the column LastName to the fourth field.

<BCPFORMAT   
xmlns="http://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>  
참고

해당하는 AdventureWorks2012AdventureWorks2012 예제는 서식 파일을 사용하여 데이터 필드 건너뛰기(SQL Server)를 참조하세요.For an equivalent AdventureWorks2012AdventureWorks2012 example, see Use a Format File to Skip a Data Field (SQL Server).

4. D. <FIELD> xsi:type을 <COLUMN> xsi:type에 매핑Mapping <FIELD> xsi:type to <COLUMN> xsi:type

다음 예에서는 다양한 형식의 필드와 함께 해당 필드와 열의 매핑을 보여 줍니다.The following example shows different types of fields and their mappings to columns.

<?xml version = "1.0"?>  
<BCPFORMAT  
xmlns="http://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. E. XML 데이터를 테이블에 매핑Mapping XML data to a table

다음 예에서는 두 개의 빈 열을 가진 테이블(t_xml)을 만듭니다. 테이블의 첫 번째 열은 int 데이터 형식에, 두 번째 열은 xml 데이터 형식에 매핑됩니다.The following example creates an empty two-column table (t_xml), in which the first column maps to the int data type and the second column maps to the xml data type.

CREATE TABLE t_xml (c1 int, c2 xml)  

다음 XML 서식 파일에서는 t_xml테이블에 데이터 파일을 로드합니다.The following XML format file would load a data file into table t_xml.

<?xml version="1.0"?>  
<BCPFORMAT xmlns="http://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. F. 고정 길이 또는 고정 너비 필드 가져오기Importing fixed-length or fixed-width fields

다음 예에서는 10 자 또는 6 자의 각 고정 필드에 대해 설명합니다.The following example describes fixed fields of 10 or 6 characters each. 서식 파일은 이러한 필드 길이/너비를 각각 LENGTH="10"LENGTH="6"으로 나타냅니다.The format file represents these field lengths/widths as LENGTH="10" and LENGTH="6", respectively. 데이터 파일의 모든 행은 캐리지 리턴-줄바꿈 조합 {CR}{LF}로 끝납니다. 여기서 서식 파일은 TERMINATOR="\r\n"로 나타냅니다.Every row of the data files ends with a carriage return-line feed combination, {CR}{LF}, which the format file represents as TERMINATOR="\r\n".

<?xml version="1.0"?>  
<BCPFORMAT  
       xmlns="http://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>  

추가 예 Additional Examples

비 XML 서식 파일과 XML 서식 파일의 추가 예를 보려면 다음 항목을 참조하세요.For additional examples of both non-XML format files and XML format files, see the following topics:

없음None.

참고 항목See Also

데이터 대량 가져오기 및 내보내기(SQL Server) Bulk Import and Export of Data (SQL Server)
데이터 형식(Transact-SQL) Data Types (Transact-SQL)
비 XML 서식 파일(SQL Server) Non-XML Format Files (SQL Server)
데이터를 가져오거나 내보내기 위한 서식 파일(SQL Server)Format Files for Importing or Exporting Data (SQL Server)