SQL Server - Importar CSV

 
Vista:
sin imagen de perfil
Val: 67
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Ana (34 intervenciones) el 27/10/2017 10:09:44
Buenos días,

Estoy tratando de importar un fichero csv a la BBDD a través de un procedimiento.

Estoy utilizando la siguiente sentencia:

1
2
3
4
5
6
7
8
9
SET @sql = 'BULK INSERT #tablaCSV
	FROM  ''' + @p_filePath + '''
	WITH (
	  DATAFILETYPE = ''char'',
	  FIRSTROW = 2,
	  MAXERRORS = 0, 
	  FIELDTERMINATOR =''";"'',
	  ROWTERMINATOR=''\n''
	)'

Lo intento guardar en una tabla temporal pero no me lo carga, pero no me da error.

Si es cierto, que el fichero cvs, me viene con todos los campos con comillas dobles, ejemplo:

"id";"nombre";"apellidos"
"1";"veronica";"lopez"

Creo que el error es ese, las comillas dobles.

¿Habría alguna manera de quitarlas?

Muchas gracias por adelantado.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Isaias (4558 intervenciones) el 27/10/2017 16:54:24
Muestranos algunos registros de tu archivo CSV
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 67
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Ana (34 intervenciones) el 30/10/2017 16:02:48
Hola,

Así es como quedaría:

"bkcode";"bk_name";"channel";"closeTime";"creationTime";"dealer";"dealerReadyTime";"deliveryAddress";"deliveryfailexplanation";"email";"H_subtotal";"H_total";"HproductCount";"latitude";"longitude";"onRouteTime";"orderDate";"orderID";"orderWaitTime";"paymentmethod_oid";"phoneNumber";"productionTime";"promoCode";"rsoid";"starPromotion";"statusFailed";"store_oid";"user_oid";"userFullName"

"20600";"Barcelona - San Pau";"web";"26/10/2017 13:54:49";"26/10/2017 13:30:14";"Gaspare Nicosia";"26/10/2017 13:35:07";"Carrer de Calàbria, 207, 1° 2a";;"[email protected]";" 16.48";" 16.48";"3.0";"41.3851434";"2.147626";"26/10/2017 13:40:03";"26/10/2017";"20594";"30";"4";"615834380";"26/10/2017 13:33:10";;"8923877";;"false";"182";"1035393";"David Luis Alonso"

Muchas gracias.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Isaias (4558 intervenciones) el 30/10/2017 17:40:58
Tu encabezado no cumple con tu registro, en algunas columnas traes dobl ;

13:33:10";;"8923877";;"false"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 67
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Ana (34 intervenciones) el 30/10/2017 17:52:38
Es como me envian el fichero, ¿es posible que por eso no me lo cargue?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Isaias (4558 intervenciones) el 30/10/2017 17:54:12
Correcto, el formato no es adecuado, es por eso que no te sube la informacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 67
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Ana (34 intervenciones) el 31/10/2017 12:14:12
Muchas gracias.

¿Hay alguna manera de poder tratar el .csv? es decir, quitandole las dobles comillas.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Isaias (4558 intervenciones) el 31/10/2017 17:26:42
No son las doble comillas, son los dobs punto y com (;), supongo que este es el separador de columnas, entonces SQL Server al econtrar DOS juntas, supone que enmedio de estas habra un campo mas, pero no hay comillas ni hay dato.

Ademas, creo que te hacen falta nombre de campo en el HEADER
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 67
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Importar CSV

Publicado por Ana (34 intervenciones) el 22/11/2017 16:21:59
Hola,

Al final lo logre, con lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
SET @sql = N'BULK INSERT #tableTMP
	FROM  ''' + @filePath + '''
	WITH (
		DATAFILETYPE = ''char'',
		FIRSTROW = 2,
		MAXERRORS = 0,
		FIELDTERMINATOR ='';'',
		ROWTERMINATOR = ''0x0A'',
		TABLOCK,
		KEEPNULLS
	)'
 
EXEC(@sql)

Lo inserto en una tabla temporal y después lo paso a una tabla de la BBDD, remplazando las dobles comillas por nada (REPLACE(campo, '"', '')).

Pero ahora tengo un problema, que dentro de un campo me viene con punto y coma, me viene así:
"campo1";"campo2";"campo3;lo que sea";"campo4"

Y no logro quitar el punto y coma del campo.

Es un csv que me viene de esa manera.

Muchas gracias por adelantado.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar