Ver Mensaje Individual
  #2  
Antiguo 13-10-2021
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
hola!!

Una forma de solucionar este problema es almacenar el valor en una variable temporal y establecer el valor correcto del campo en la sección SET del comando LOAD DATA aplicando una sustitución del separador decimal.

Aquí te dejo un ejemplo de como poder hacerlo:

Código SQL [-]
LOAD DATA INFILE 'C://xampp//tmp//tabla.csv'
INTO TABLE `tablacsv`
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
-- los valores correspondientes a los campos num1, num2, en vez de guardarlos
-- directamente en la BBDD se almacenan en las varibles temporales @num1, @num2
(`id`, `asunto`, @num1, @num2)
-- y en la seccion SET puedes establecer los valores de los campos aplicando los cambios que se deseen
-- en este caso se sustituye la coma decimal por punto
SET `num1`=CONVERT(replace(@num1, ',', '.'), decimal(10,3)),
    `num2`=CONVERT(replace(@num1, ',', '.'), decimal(10,3))
Responder Con Cita