bcp를 사용하여 연결
bcp 유틸리티는 Linux 및 macOS 기반 Microsoft ODBC Driver for SQL Server에서 사용할 수 있습니다. 이 페이지에서는 bcp의 Windows 버전과의 차이점을 설명합니다.
기본 필드 종결자는 탭("\t")입니다.
줄 종결자는 줄 바꿈 문자("\n")입니다.
문자 모드는 확장 문자를 포함하지 않는
bcp
서식 파일 및 데이터 파일의 기본 형식입니다.
참고 항목
명령줄 인수에서 백슬래시 '\'는 따옴표로 묶거나 이스케이프되어야 합니다. 예를 들어 사용자 지정 행 종결자로 줄 바꿈 문자를 지정하려면 다음 메커니즘 중 하나를 사용해야 합니다.
- -r\\n
- -r"\n"
- -r'\n'
다음 예제는 텍스트 파일에 테이블 행을 복사하는 bcp
의 명령 호출입니다.
bcp AdventureWorks2008R2.Person.Address out test.dat -Usa -Pxxxx -Sxxx.xxx.xxx.xxx
사용 가능한 옵션
현재 릴리스에서 다음 구문 및 옵션을 사용할 수 있습니다.
[database.]schema.table in data_file | out data_file
-a packet_size
서버에서 전송되거나 서버로 전송되는 네트워크 패킷당 바이트 수를 지정합니다.
-b batch_size
가져온 데이터의 일괄 처리당 행 수를 지정합니다.
-c
문자 데이터 형식을 사용합니다.
-d database_name
연결할 데이터베이스를 지정합니다.
-D
bcp
-S 옵션에 전달된 값이 DSN(데이터 원본 이름)으로 해석되도록 합니다. 자세한 내용은 Connecting with sqlcmd에서 "sqlcmd 및 bcp에서 DSN 지원"을 참조하세요.
-e error_file
bcp
유틸리티가 파일에서 데이터베이스로 전송할 수 없는 행을 저장하는 데 사용되는 오류 파일의 전체 경로를 지정합니다.
-E
가져온 데이터 파일의 ID 값 하나 또는 여러 개를 ID 열에 사용합니다.
-f format_file
서식 파일의 전체 경로를 지정합니다.
-F first_row
테이블에서 내보내거나 데이터 파일에서 가져올 첫 번째 행 번호를 지정합니다.
-G
이 스위치는 Azure SQL 데이터베이스, Azure SQL Managed Instance, Azure Synapse Analytics에 연결할 때 클라이언트에서 Microsoft Entra ID(이전에는 Azure Active Directory) 인증을 통해 사용자가 인증되도록 지정하는 데 사용됩니다. 액세스 토큰 인증을 사용하기 위해 -P 옵션과 결합할 수 있습니다(v17.8 이상). -G 스위치를 사용하려면 bcp 버전 17.6 이상이 필요합니다. 사용 중인 버전을 확인하려면 bcp -v를 실행하세요.
Important
-G
옵션은 Azure SQL 데이터베이스, Azure SQL Managed Instance, Azure Synapse Analytics에만 적용됩니다.
Microsoft Entra 대화형 인증은 현재 Linux 또는 macOS에서 지원되지 않습니다. Microsoft Entra 통합 인증을 사용하려면 Microsoft ODBC Driver 17 for SQL Server 버전 17.6.1 이상과 올바르게 구성된 Kerberos 환경이 필요합니다.
-k
작업 시 삽입된 열에 기본값이 지정되지 않고 빈 열이 Null 값을 보유하도록 지정합니다.
-l
로그인 시간 제한을 지정합니다. -l 옵션을 사용하여 서버에 연결을 시도할 때 SQL Server에 대한 로그인 제한 시간(초)을 지정합니다. 기본 로그인 제한 시간은 15초입니다. 로그인 제한 시간은 0에서 65534 사이의 숫자여야 합니다. 입력한 값이 숫자가 아니거나 이 범위에 속하지 않을 경우 bcp
에서는 오류 메시지를 생성합니다. 값 0은 무한 시간 제한을 지정합니다.
-L last_row
테이블에서 내보내거나 데이터 파일에서 가져올 마지막 행 번호를 지정합니다.
-m max_errors
bcp
작업이 취소되는 최대 구문 오류 발생 횟수를 지정합니다.
-n
대량 복사 작업을 수행하기 위해 데이터의 네이티브(데이터베이스) 데이터 형식을 사용합니다.
-P password
로그인 ID의 암호를 지정합니다. -U 없이 -G 옵션과 함께 사용할 경우 액세스 토큰(v17.8 이상)이 포함된 파일을 지정합니다. 토큰 파일은 UTF-16LE(BOM 없음) 형식이어야 합니다.
액세스 토큰은 다양한 메서드로 가져올 수 있습니다. 액세스 토큰은 있는 그대로 전송되므로, 바이트 단위(byte-for-byte)가 올바른 것이 중요합니다. 다음은 액세스 토큰을 가져오는 예제 명령입니다. 이 명령은 Azure CLI 및 Linux 명령을 사용하고 적절한 형식으로 파일에 저장합니다. 시스템 또는 터미널의 기본 인코딩이 ASCII 또는 UTF-8이 아닌 경우 iconv
옵션을 조정해야 할 수 있습니다. 결과 파일을 신중하게 보호하고 더 이상 필요하지 않은 경우 삭제해야 합니다.
az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
-q
bcp
유틸리티와 SQL Server 인스턴스 간의 연결에서 SET QUOTED_IDENTIFIERS ON 문을 실행합니다.
-r row_terminator
행 종결자를 지정합니다.
-R
클라이언트 컴퓨터의 로캘 설정에 정의된 국가별 형식을 사용하여 통화, 날짜 및 시간 데이터를 SQL Server 로 대량 복사하도록 지정합니다.
-S server
연결할 SQL Server 인스턴스의 이름을 지정하거나 -D를 사용하는 경우 DSN을 지정합니다.
-t field_terminator
필드 종결자를 지정합니다.
-T
bcp
유틸리티가 신뢰할 수 있는 연결(통합 보안)을 통해 SQL Server로 연결되도록 지정합니다.
-u
서버 인증서를 신뢰합니다. (bcp
버전 18부터 사용 가능)
-U login_id
SQL Server 연결에 사용하는 로그인 ID를 지정합니다.
-v
bcp
유틸리티 버전 번호 및 저작권을 보고합니다.
-w
유니코드 문자를 사용하여 대량 복사 작업을 수행합니다.
이 릴리스에서는 Latin-1과 UTF-16 문자가 지원됩니다.
-Y[s|m|o]
연결 암호화 모드를 지정합니다. 옵션은 Strict, Mandatory 및 Optional입니다. 매개 변수 없이 -Y를 사용하면 필수 암호화 모드가 사용되며 -Ym과 동일합니다. (bcp
버전 18부터 사용 가능)
사용할 수 없는 옵션
현재 릴리스에서 다음 구문 및 옵션은 사용할 수 없습니다.
-C
데이터 파일에서 데이터의 코드 페이지를 지정합니다.
-h 힌트
데이터를 테이블 또는 보기에 대량으로 가져올 때 사용할 힌트를 지정합니다.
-i input_file
지시 파일 이름을 지정합니다.
-N
문자가 아닌 데이터의 경우 데이터의 네이티브(데이터베이스) 데이터 형식을 사용하고, 문자 데이터의 경우 유니코드 문자를 사용합니다.
-o output_file
명령 프롬프트에서 리디렉션된 출력을 받는 파일의 이름을 지정합니다.
-V (80 | 90 | 100)
이전 버전의 SQL Server에서 데이터 형식을 사용합니다.
-x
format 및 -f format_file 옵션과 함께 사용되며 기본 비 XML 서식 파일 대신 XML 기반 서식 파일을 생성합니다.