bcp를 사용하여 데이터 파일에 접두사 길이 지정(SQL Server)Specify Prefix Length in Data Files by Using bcp (SQL Server)

원시 형식의 데이터를 데이터 파일에 대량으로 내보내는 작업에서 파일 저장소를 가장 적게 사용하도록 하기 위해 bcp 명령은 각 필드의 이름 앞에 필드 길이를 나타내는 문자를 하나 이상 추가합니다.To provide the most compact file storage for the bulk export of data in native format to a data file, the bcp command precedes each field with one or more characters that indicates the length of the field. 이러한 문자를 길이 접두사 문자라고 합니다.These characters are called length prefix characters.

bcp 프롬프트에서 접두사 길이 지정The bcp Prompt for Prefix Length

대화형 bcp 명령에 in 또는 out 옵션이 포함된 경우 서식 파일 스위치(-f) 또는 데이터 형식 스위치(-n, -c, -w또는 -N)가 없으면 명령에서 다음과 같이 각 데이터 필드의 접두사 길이를 지정하라는 메시지가 표시됩니다.If an interactive bcp command contains the in or out option without either the format file switch (-f) or a data-format switch (-n, -c, -w, or -N), the command prompts for the prefix length of each data field, as follows:

Enter prefix length of field <field_name> [<default>]:

0을 지정하면 bcp 는 필드의 길이(문자 데이터 형식인 경우)나 필드 종결자(문자가 아닌 원시 형식인 경우)를 지정하라는 메시지를 표시합니다.If you specify 0, bcp prompts you for either the length of the field (for a character data type) or a field terminator (for a native non-character type).

참고

bcp 명령의 모든 필드를 대화형으로 지정하면 명령에서 비 XML 서식 파일의 각 필드에 대한 응답을 저장하라는 메시지를 표시합니다.After you interactively specify all of the fields in a bcp command, the command prompts you save your responses for each field in a non-XML format file. 비 XML 서식 파일에 대한 자세한 내용은 비 XML 서식 파일(SQL Server)을 참조하세요.For more information about non-XML format files, see Non-XML Format Files (SQL Server).

접두사 길이 개요Overview of Prefix Length

필드의 접두사 길이를 저장하려면 필드의 최대 길이를 나타낼 수 있도록 충분한 바이트가 필요합니다.To store the prefix length of a field, you need enough bytes to represent the maximum length of the field. 또한 필요한 바이트의 수는 파일 저장 유형, 열의 Null 허용 여부 및 데이터 파일에 저장된 데이터가 네이티브 형식인지 문자 형식인지 여부에 따라 달라집니다.The number of bytes that are required also depends upon the file storage type, the nullability of a column, and whether the data is being stored in the data file in its native or character format. 예를 들어 text 또는 image 데이터 형식은 4개의 접두사 문자가 필요한 반면 varchar 데이터 형식은 2개의 접두사 문자로 필드의 길이를 저장할 수 있습니다.For example, a text or image data type requires four prefix characters to store the field length, but a varchar data type requires two characters. 데이터 파일에서 이러한 길이 접두사 문자는 SQL ServerSQL Server의 내부 이진 데이터 형식으로 저장됩니다.In the data file, these length-prefix characters are stored in the internal binary data format of SQL ServerSQL Server.

중요

네이티브 형식을 사용할 때는 필드 종결자 대신 길이 접두사를 사용하십시오.When you use native format, use length prefixes rather than field terminators. 네이티브 형식 데이터 파일은 SQL ServerSQL Server 내부 이진 데이터 형식에 저장되므로 종결자와 충돌할 수 있습니다.Native format data might conflict with terminators because a native-format data file is stored in the SQL ServerSQL Server internal binary data format.

대량 내보내기의 접두사 길이 Prefix Lengths for Bulk Export

참고

필드를 내보낼 때 접두사 길이 프롬프트에 제공되는 기본값은 해당 필드에 가장 효과적인 접두사 길이를 나타냅니다.The default value that is provided at the prefix-length prompt when you export a field indicates the most efficient prefix length for the field.

Null 값이 빈 필드로 나타납니다.Null values are represented as an empty field. 필드가 비어 있음(NULL)을 나타내기 위해 필드 접두사에 -1을 포함하므로 최소 1바이트가 필요합니다.To indicate that the field is empty (represents NULL), the field prefix contains the value -1; that is, it requires at least 1 byte. SQL ServerSQL Server 테이블 열에서 Null 값을 허용하는 경우 해당 열은 파일 저장 유형에 따라 1이상의 접두사 길이가 필요합니다.Note that if a SQL ServerSQL Server table column allows null values, the column requires a prefix length of 1 or greater, depending on the file storage type.

대량 내보내기한 데이터를 네이티브 데이터 형식이나 문자 형식으로 저장하는 경우 다음 표에서 설명하는 접두사 길이를 사용하십시오.When you bulk export data and store it in either native data types or character format, use the prefix lengths shown in the following table.

SQL ServerSQL Server

데이터 형식data type
네이티브 형식Native format

NOT NULLNOT NULL
네이티브 형식Native format

NULLNULL
문자 형식Character format

NOT NULLNOT NULL
문자 형식Character format

NULLNULL
charchar 22 22 22 22
varcharvarchar 22 22 22 22
ncharnchar 22 22 22 22
nvarcharnvarchar 22 22 22 22
texttext** 44 44 44 44
ntextntext** 44 44 44 44
binarybinary 22 22 22 22
varbinaryvarbinary 22 22 22 22
imageimage** 44 44 44 44
datetimedatetime 00 11 00 11
smalldatetimesmalldatetime 00 11 00 11
decimaldecimal 11 11 11 11
numericnumeric 11 11 11 11
floatfloat 00 11 00 11
realreal 00 11 00 11
intint 00 11 00 11
bigintbigint 00 11 00 11
smallintsmallint 00 11 00 11
tinyinttinyint 00 11 00 11
moneymoney 00 11 00 11
smallmoneysmallmoney 00 11 00 11
bitbit 00 11 00 11
uniqueidentifieruniqueidentifier 11 11 00 11
timestamptimestamp 11 11 11 11
varchar(max)varchar(max) 88 88 88 88
varbinary(max)varbinary(max) 88 88 88 88
UDT (사용자 정의 데이터 형식)UDT (a user-defined data type) 88 88 88 88
XMLXML 88 88 88 88
sql_variantsql_variant 88 88 88 88

*ntext, textimage 데이터 형식은 SQL ServerSQL Server이후 버전에서 제거됩니다.*The ntext, text, and image data types will be removed in a future version of SQL ServerSQL Server. 향후 개발 작업에서는 이 데이터 형식을 사용하지 않도록 하고 현재 이 데이터 형식을 사용하는 응용 프로그램은 수정하세요.Avoid using these data types in new development work, and plan to modify applications that currently use them. 대신 nvarchar(max), varchar(max)varbinary(max) 를 사용합니다.Use nvarchar(max), varchar(max), and varbinary(max) instead.

대량 가져오기의 접두사 길이 Prefix Lengths for Bulk Import

데이터를 대량 가져올 때 접두사 길이는 해당 데이터 파일이 원래 작성될 때 지정된 값입니다.When data is bulk imported, the prefix length is the value that was specified when the data file was created originally. bcp 을 사용하여 데이터 파일을 만들지 않은 경우에는 길이 접두사 문자가 없을 수도 있습니다.If the data file was not created by a bcp command, length prefix characters probably do not exist. 이 경우에는 접두사 길이에 0을 지정합니다.In this instance, specify 0 for the prefix length.

참고

bcp를 사용하여 만들지 않은 데이터 파일에 접두사 길이를 지정하려면 이 항목의 앞부분에 나오는 대량 내보내기의 접두사 길이에 제공되어 있는 길이를 사용하세요.To specify a prefix length in a data file that was not created by using bcp, use the lengths provided in Prefix Lengths for Bulk Export, earlier in this topic.

참고 항목See Also

bcp 유틸리티 bcp Utility
데이터 형식(Transact-SQL) Data Types (Transact-SQL)
bcp를 사용하여 필드 길이 지정(SQL Server) Specify Field Length by Using bcp (SQL Server)
필드 및 행 종결자 지정(SQL Server) Specify Field and Row Terminators (SQL Server)
bcp를 사용하여 파일 저장 유형 지정(SQL Server)Specify File Storage Type by Using bcp (SQL Server)