나는 파이프 플랫 파일을 구분 가져 오기 위해 노력하지만 오류가 아래에 무엇입니까 :대량 삽입 : FieldTerminator, 캐리지 리턴, 뉴 라인 문자를 가진 플랫 파일로 RowTerminator
메시지 4832, 수준 16, 상태 1, 줄 1 대량로드 : 데이터 파일에서 예상치 못한 파일 끝에 도달했습니다. 메시지 7399, 수준 16, 상태 1, 수준 1 "(null)"연결된 서버에 대한 OLE DB 공급자 "BULK"에서 오류가 발생했습니다. 공급자가 오류에 대한 정보를 제공하지 않았습니다. 메시지 7330, 수준 16, 상태 2, 줄 1 연결된 서버 "(null)"의 OLE DB 공급자 "BULK"에서 행을 가져올 수 없습니다.
내 코드 :
IF OBJECT_ID('tempdb..##tblImport') IS NOT NULL DROP TABLE tempdb..##tblImport;
CREATE Table ##tblImport (VoucherNumber BIGINT,Currency VARCHAR(100),VoucherAmount MONEY, RetailAmount MONEY, VoucherDuration INT, ServiceProviderGroupID INT, BatchNumber BIGINT, SerialNumber int)
DECLARE @SQL VARCHAR(2000)
DECLARE @FilePath VARCHAR(1000)
SET @FilePath = 'C:\Users\Documents\Sample.txt'
SET @SQL = 'bulk insert ##tblImport from ''C:\Users\Documents\Sample.txt''
WITH
(
FIELDTERMINATOR = ''|'',
ROWTERMINATOR = ''|\n''
)'
EXEC(@SQL)
SELECT * FROM ##tblImport
내가 행의 끝 부분에있는 파이프를 삭제하고 단지 '\ n'을 저도 같은 오류를 얻을 수있는 코드에서 행 구분 기호를 변경하려고하면. 일련 번호를 열에서 VARCHAR (MAX)으로 변경하려고 시도한 다음 마지막 열이 모든 레코드를 채우는 것입니다. 위의 오류를 다시 \ n 전에 공간을 제공하십시오. 누군가가 데이터를 가져 오기위한 코드를 도와 주시겠습니까?
FIELDTERMINATOR = ''| '', ROWTERMINATOR = ''| \ n '' 구분 기호 앞에 공백을 넣으면 아래 오류가 표시됩니다. 행 1, 열 8 (일련 번호)에 대한 대량로드 데이터 변환 오류 (형식이 일치하지 않거나 지정된 코드 페이지에 대해 유효하지 않은 문자) ** –
FYI : @FilePath 변수가 선언되었지만 사용되지 않았습니다. –
예. 나는 그것을 바꿀 것이다. 고맙습니다. @SQL_Underworld –