반응형
BULK INSERT는 대량의 데이터 파일을 데이터베이스 테이블에 INSERT 할 때 사용합니다.
BULK INSERT 특징
- BULK INSERT를 하면 TXT, CSV 파일을 테이블에 삽입할 수 있습니다.
- INSERT 및 ADMINISTER BULK OPERATIONS 권한이 필요합니다.
- 서식 파일을 BULK INSERT와 함께 사용하면 최대 1024개의 필드까지만 가능합니다.
- 데이터를 입력할 때 BULK INSERT 문 내에 BATCHSIZE 절을 지정하여 나눠 작업할 수 있습니다.
BULK INSERT 사용법 예제
BULK INSERT 사용법 예제 및 권한.
- 기본적으로 제약 조건을 사용하지 않습니다. 제약 조건을 확인하려면 CHECK_CONSTRAINTS 옵션을 사용하세요.
- 테이블에 Trigger가 사용 중이면 FIRE_TRIGGER 옵션을 지정하지 않았습니다.
- 데이터 파일에서 ID 값을 가져올 때 KEEPIDENTITY 옵션을 사용합니다.
txt 파일을 테이블에 넣기.
- 텍스트 파일 내용을 테이블에 BULK INSERT 합니다.
- ROWTERMINATOR는 행 변경인데 기본 행 종결자는 \n(줄 바꿈)입니다.
- 에러 발생 시는 '0x0a' 변경해 주세요.
-- CREATE TABLE
DROP TABLE IF EXISTS BulkInsertForTxt;
CREATE TABLE BulkInsertForTxt (
Txt1 varchar(255) NULL,
Txt2 varchar(255) NULL,
Txt3 varchar(255) NULL,
Txt4 varchar(255) NULL
);
-- Bulk Insert
BULK INSERT BulkInsertForTxt
FROM 'D:\BULK_INSERT_FILE\TEXTFILE.txt'
WITH
(
FIELDTERMINATOR = '|'
,ROWTERMINATOR = '\n'
-- ,ROWTERMINATOR = '0x0a'
-- , FIRSTROW = 2
-- ,LASTROW =3
-- , BATCHSIZE =2
);
-- data check.
SELECT *
FROM BulkInsertForTxt;
CSV 파일을 테이블에 넣기.
- CSV 파일도 테이블에 BULK INSERT 할 수 있습니다.
-- CREATE TABLE
DROP TABLE IF EXISTS BulkInsertForCSV;
CREATE TABLE BulkInsertForCSV (
CSV1 varchar(255) NULL,
CSV2 varchar(255) NULL,
CSV3 varchar(255) NULL,
CSV4 varchar(255) NULL
);
-- Bulk Insert
BULK INSERT BulkInsertForCSV
FROM 'D:\BULK_INSERT_FILE\CSVBULKINSERT.csv'
WITH ( FORMAT = 'CSV'
-- , FIRSTROW = 2
-- ,LASTROW =3
-- , BATCHSIZE =2
, FIELDTERMINATOR = ','
, ROWTERMINATOR = '0x0a'
);
SELECT *
FROM BulkInsertForCSV
BULK INSERT 에러
BULK INSERT 에러 발생 시.
- BULK INSERT 에러 발생 시.
- Msg 4832, Level 16, State 1, Line 13.
- 대량 로드: 데이터 파일에서 예기치 않은 파일 끝에 도달했습니다.
- Msg 7399, Level 16, State 1, Line 13.
- 연결된 서버 "(null)"의 OLE DB 공급자 "BULK"에 오류가 발생했습니다. 공급자에서 오류에 관한 정보를 주지 않았습니다.
- Msg 7330, Level 16, State 2, Line 13.
- 연결된 서버 "(null)"의 OLE DB 공급자 "BULK"에서 행을 인출할 수 없습니다.
- 소스를 복사하여 실행해 주세요.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
EXEC SP_CONFIGURE 'Agent XPs', 1;
RECONFIGURE;
한국어 data 잘못된 경우.
- CODEPAGE에서 한국어가 깨지면 65001로 설정해 주세요.
반응형