안녕하세요
대용량 데이터를 가져오는 부분 질문입니다.
53316022912986111031168143939
54451602291038143103104814569016022816022816030300050280637 410DDC1602271602271602280200
다음과 같이 카드사의 데이터를 sql로 읽어와서 테이블에 데이터를 넣어줘야하는데요
BULK INSERT TESTDATA
FROM 'E:\DataInterface\TESTDATA.txt'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '$$'
)
다음과 같이 bulk insert를 사용하였을 경우에 메시지 4832, 수준 16, 상태 1, 줄 1
대량 로드: 데이터 파일에서 예기치 않은 파일 끝에 도달했습니다.
메시지 7399, 수준 16, 상태 1, 줄 1
연결된 서버 "(null)"의 OLE DB 공급자 "BULK"에 오류가 발생했습니다. 공급자에서 오류에 관한 정보를 주지 않았습니다.
메시지 7330, 수준 16, 상태 2, 줄 1
연결된 서버 "(null)"의 OLE DB 공급자 "BULK"에서 행을 인출할 수 없습니다.
다음 과 같은 오류가 발생하여서 위와 같이 종결문자가 없는 데이터를 가져오기 위해서는
어떠한 방법이 있는지 알려주시면 감사할거 같습니다.
Comment 4
-
ilovejsp
2016.05.19 11:04
-
sql배우고자하는자
2016.05.19 12:11
답변감사합니다.~ 근데 위의 처럼 ROWTERMINATOR ='\r\n' 적용하고 했지만 똑같은 오류가 발생하네요 ㅠㅠ
-
ilovejsp
2016.05.19 13:23
그러면은
1.BULK INSERT TESTDATA
FROM 'E:\DataInterface\TESTDATA.txt'
WITH
(
FIELDTERMINATOR = '|'
)
이렇게만 한번해보세요
어자피 rowternimator안쓰면 default로 \ n이렇게 되니깐요
2. 그리고 해당 txt파일 넣어서 맨마지막에 엔터한번넣어주세요
-
minsouk
2016.05.19 18:29
- File>>Open>>File
- On the open file dialog at the bottom there is a down arrow on the "Open" button
- Click "Open WIth"
- Click "Binary Editor"
- Click OK
바이너리로 한번 열어보시면 쉽게 원인을 알 수 있습니다.
종결문자가 없을 경우에 기본 행 종결자는 줄바꿈 문자입니다.
https://msdn.microsoft.com/ko-kr/library/ms188365(v=sql.120).aspx
그래서 종결문자가 없다면 해당 txt파일의 마지막행을 한칸 띄우고
ROWTERMINATOR ='\r\n'이라고 써주시면될듯 ^^
안되면 댓글좀요