Unicode .txt 파일 format파일 이용해서 BulkInsert할때 문제점
안녕하세요.
유니코드 텍스트 파일을 .fmt 파일을 이용해서 BulkInsert할려고 하면
"메시지 4832, 수준 16, 상태 1, 줄 1
대량 로드: 데이터 파일에서 예기치 않은 파일 끝에 도달했습니다.
메시지 7399, 수준 16, 상태 1, 줄 1
연결된 서버 "(null)"의 OLE DB 공급자 "BULK"에 오류가 발생했습니다. 공급자에서 오류에 관한 정보를 주지 않았습니다.
메시지 7330, 수준 16, 상태 2, 줄 1
연결된 서버 "(null)"의 OLE DB 공급자 "BULK"에서 행을 인출할 수 없습니다.
"
이런 에러가 뜹니다. Ansi파일 형태는 문제없었고 유니코드 파일로 변환하니 문제가 생기네요.
===================
- .fmt 파일 형식입니다.
11.0
9
1 SQLNCHAR 0 128 "} {" 2 CountryCode ""
2 SQLNCHAR 0 128 "} {" 3 WorldCode ""
3 SQLNCHAR 0 128 "} {" 4 ServerCode ""
4 SQLNCHAR 0 128 "} {" 5 UserID Korean_Wansung_CI_AS
5 SQLNCHAR 0 128 "} {" 6 UserName Korean_Wansung_CI_AS
6 SQLNCHAR 0 128 "} {" 7 UserNo ""
7 SQLNCHAR 0 128 "} {" 8 Lv ""
8 SQLNCHAR 0 128 "} {" 9 PlayTime ""
9 SQLNCHAR 0 128 "\n" 10 LogTime Korean_Wansung_CI_AS
====================
- BulkInsert 쿼리입니다.
declare @sql nvarchar(2000)
set @sql = 'BULK INSERT ST_LevelUpLog FROM ''G:\FTPLog\LEVEL_UP_COMMON_GS_391_20160902_175943.log'' WITH (FIRSTROW = 1, ROWTERMINATOR = ''\n'' , DATAFILETYPE = ''widechar'', FORMATFILE = ''G:\1.Server\ProjectSR_Server\Tool\LogMan_SummonRush\fmt\levelup_log.fmt'')'
exec sp_executesql @sql
Comment 1
-
minsouk
2016.09.06 04:28
For a format file to work with a Unicode character data file, all input fields must be Unicode text strings (that is, either fixed-size or character-terminated Unicode strings).
https://msdn.microsoft.com/en-us/library/ms178129.aspx
https://blogs.msdn.microsoft.com/joaol/2008/11/27/bulk-insert-using-unicode-data-files/