ho questo CSV denominato test.csv con il contenuto sottoinserimento di massa problema ROWTERMINATOR
1,"test user",,,4075619900,[email protected],"Aldelo for Restaurants","this is my deal",,"location4"
2,"joe johnson",,"32 bit",445555519,[email protected],"Restaurant Pro Express","smoe one is watching u",,"some location"
Ecco il mio file SQL per fare l'Inserimento di massa
USE somedb
GO
CREATE TABLE CSVTemp
(id INT,
name VARCHAR(255),
department VARCHAR(255),
architecture VARCHAR(255),
phone VARCHAR(255),
email VARCHAR(255),
download VARCHAR(255),
comments TEXT,
company VARCHAR(255),
location VARCHAR(255))
GO
BULK
INSERT CSVTemp
FROM 'c:\test\test.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '''+CHAR(124)+''+CHAR(10)+'''
)
GO
--Check the content of the table.
SELECT *
FROM CSVTemp
GO
ma che cosa sta accadendo è il suo unico inserimento un record e tutte le informazioni del secondo record vengono inserite nel campo posizione sul primo record
id,name,department,architecture,phone,email,download,comments,company,location
1,"test user",NULL,NULL,4075619900,[email protected],"Aldelo for Restaurants","this is my deal",NULL,"""location4""2,""joe johnson"",,""32 bit"",445555519,[email protected],""Restaurant Pro Express"",""smoe one is watching u"",,""some location"""
Suppongo che il problema è la ROWTERMINATOR
ma ho provato tutti questi
ROWTERMINATOR = '\n'
ROWTERMINATOR = '\r\n'
ROWTERMINATOR = '\r'
e tutti gli stessi risultati ... tutte le idee su come risolvere questo
sto creando il csv come this tramite PHP
Hai provato '\ n \ r'? Da dove viene il file CSV? È possibile che ci sia un carattere non stampabile alla fine della riga? –
lo sto generando via php sul server ... aggiornerò la mia domanda – Trace
Forse mostrerò il PHP che stai usando per generare il CR + LF. –