2016-07-26 13 views
0

Ich versuche, CSV-Datei in SQL Server 2014 Bulk einfügen. Ich habe festgestellt, dass es das Ende der Zeile Zeichen in der CSV-Datei nicht erkennt.SQL Server 2014 CSV-Import erkennt Zeilenende/Zeile nicht

Der Fehler I erhalten ist:

Msg 4864, Ebene 16, Status 1, Prozedur spTempImport, Zeile 74 Massenumwandlung Fehlerlast Daten (Typ Mismatch oder ungültiges Zeichen für die Codepage angegeben) für die Zeilen 1, Spalte 51 (Val_0000).

Ich habe andere Beiträge hier gelesen und habe sie alle ausprobiert und ich kann es nicht zur Arbeit bekommen.

Die SPROC ist wie folgt:

USE [xxxxxxx] 
GO 
/****** Object: StoredProcedure [dbo].[spTempImport] Script Date: 26/07/2016 19:59:56 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER PROCEDURE [dbo].[++++++++] 

AS 
BEGIN 

SET NOCOUNT ON 

CREATE TABLE #tmp (
     --[BatchID] NVARCHAR(MAX) NOT NULL, 
     [ID] NVARCHAR(50) NOT NULL, 
     [Serial] NVARCHAR(30) NOT NULL, 
     [Date] VARCHAR(15) NOT NULL, 
     [Val_0030]NVARCHAR(15) NULL,  
     [Val_0000]NVARCHAR(15) NULL 
    ) 

    BULK INSERT #tmp 
    FROM 'C:\Temp\test1.csv' 
    WITH 
    (
     FIRSTROW = 1, 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\r\n' 
) 


SELECT * FROM #tmp 

habe ich versucht, mit \ r \ n \ n \ r \ rn CR \ LF LF \ CR und die verschiedenen Hexcodes. Ich habe die Datei in Excel erstellt und als CSV gespeichert und es hat nicht funktioniert. Ich habe die Daten in den Notizblock kopiert und den Zeilenvorschub/Wagenrücklauf nicht erkannt.

Was mache ich falsch?

P.S. Ich habe soem die Spalten im Codebeispiel entfernt, die val Spalten sind die gleichen als der Name und [Val_0000]NVARCHAR(15) NULL ist die letzte Spalte.

Antwort

0

Ich habe die Spalten in der SPROC auf VARCHAR (MAX) gesetzt und es hat funktioniert.