2017-12-26 26 views
0
BULK INSERT dbo.Data_NEW FROM 'D:\Data.csv' 
WITH (FIELDTERMINATOR ='","',ROWTERMINATOR ='"\n"',FirstRow=1); 

큰 따옴표로 묶인 csv 파일로 대량 삽입을 실행하는 데 문제가 있습니다. 이걸 좀 도와주세요.큰 따옴표 가져 오기 BULK INSERT가 작동하지 않는 공인 CSV 파일

csv 파일은 다음과 같습니다

"Device","Pat Device","Server","Location","Time","Value","Units","Status" "101.162.57.198- Slave56","localhost (Data Center)","Output True","","Nov 14, 2017 14:58:00","88.8","kW","" "101.162.57.198- Slave56","localhost (Data Center)","Output True","","Nov 14, 2017 16:58:00","88.7","kW","" "101.162.57.198- Slave56","localhost (Data Center)","Output True","","Nov 14, 2017 18:58:00","88.5","kW","" "101.162.57.198- Slave56","localhost (Data Center)","Output True","","Nov 14, 2017 20:58:00","89.0","kW",""

+1

문제가 무엇인가

Non-XML Format Files

Create a Format File

그런 다음이 명령을 사용할 수 있습니까? 어떤 오류가 있습니까? –

+1

오류를 보내주십시오. 더 유용 할 것입니다. – ShaiEitan

+0

대량 가져 오기를 사용하여 파일을 가져와야합니까? 그렇지 않다면 Powershell을 사용하여 .net 객체를 사용하여 데이터를 가져 와서 유효성을 검사 할 수 있다고 생각해야합니다. https://www.fpweb.net/blog/powershell-tips-working-with-csv-files/ –

답변

0
  1. 당신이해야 하나 FirstRow=2을 설정하거나

  2. 이처럼 당신의 행 종결을 변경

    당신의 CSV 파일에서 첫 번째 행을 삭제 : ROWTERMINATOR ='\n'

  3. csv 파일의 각 행에서 첫 번째 및 마지막 큰 따옴표를 삭제해야합니다.

UPD : 시도가 행 종결로 '0x0a' 대신 '\n'을 사용합니다. 조치로 문제가 해결되지 않으면 테이블과 CSV 파일의 열 사이의 정확한 관계를 설명하는 형식 파일을 작성하십시오. 링크는 아래에 당신을 도울 것입니다 :

BULK INSERT dbo.Data_NEW FROM 'D:\Data.csv' 
WITH (FORMATFILE = 'D:\yourFMT.fmt'); 
+0

제안 된 변경 사항을 적용했습니다. 여전히 오류가 발생합니다. "메시지 4866, 수준 16, 상태 8, 줄 1 대량로드에 실패했습니다. 행 1, 열 8의 데이터 파일에서 열이 너무 깁니다. 필드 종결 자 및 행 종결자가 올바르게 지정되었는지 확인하십시오. " – swad

+0

dbo.Data_NEW 테이블의 "Status"필드의 데이터 유형은 무엇입니까? –

+0

상태 varchar (250) – swad