Mostrando entradas con la etiqueta csv. Mostrar todas las entradas
Mostrando entradas con la etiqueta csv. Mostrar todas las entradas

viernes, 1 de marzo de 2019

Caracteres extraños en importacion csv a MariaDB

Tenía una hoja electrónica en excel así que necesitaba importarlo en MariaDB yo pues estaba en Linux, lo primero era pasarlo a un archivo csv (separado por comas) así que la importé pero al ver el resultado estaba con caracteres extraños, no habían tildes ni letra ñ en este caso lo que hay que cambiar es la forma en que está guardado, yo lo tenía en formato "UTF-8".
Lo abrí en LibreOffice Calc ya allí le doy "Guardar como.."

libreoffice Calc guardar como


Abajo elegimos la opción "Texto CSV (csv)"
     
Guardar un archivo en calc como csv

Seleccionamos "Usar formato Texto CSV"

usar formato csv en libreoffice calc

Ahora si lo importante debemos escoger la opción "Europa occidental (ISO-8859-15/EURO)"

exportar a un archivo de texto calc diferentes formatos

Después de escoger el formato debemos especificar el delimitador en mi caso solo le puse la coma "," y el delimitador de la cadena lo puse en blanco.

delimitador de campo en libreoffice calc delimitador campo y cadena

Le damos "Aceptar" para que nos genere el archivo CSV en formato (ISO-8859-15/EURO) y ya lo podremos importar a MariaDB con los caracteres que tiene la hoja electrónica con el comando LOAD DATA LOCAL INFILE Cómo lo sabemos o como está aquí.

viernes, 1 de febrero de 2019

Cargar archivo CSV en MariaDB con Fecha

Para que sepan mi entorno de trabajo les diré que estoy trabajando en Mageia Linux 6 con MariaDB todo en local y necesitaba cargar un archivo CSV (separado por comas) pero se me presentaba el problema que el formato de la fecha estaba como 'dd/mm/yy' todo está hecho en la consola de MariaDB así que lo hice con el siguiente comando:

LOAD DATA LOCAL INFILE '/home/usuario/productos.csv'
    -> INTO TABLE productos
    -> FIELDS TERMINATED BY ','
    -> (codigoarticulo,
    -> seccion,
    -> nombrearticulo,
    -> precio,
    -> @fecha,
    -> importado,
    -> paisdeorigen)
    -> SET fecha=STR_TO_DATE(@fecha,'%d/%m/%Y');

Asi logré leer el archivo separado por comas en la misma computadora ya que todo estaba en local.

LOAD DATA INFILE: lee ficheros externos de MariaDB a una tabla a alta velocidad.

LOCAL: porque el archivo esta en mi directorio personal.

INTO TABLE: a que tabla del motor de base de datos queremos introducir los datos.

FIELDS TERMINATED BY ',': cual es el separador de cada campo en el archivo csv.

LINES TERMINATED BY '': Lo omití porque por defecto es el retorno de línea.

(codigoarticulo,
    -> seccion,
    -> nombrearticulo,
    -> precio,
    -> @fecha,
    -> importado,
    -> paisdeorigen): esta sección son los campos de la tabla, fecha esta con una arroba @ adelante para que sea una variable string temporal que luego se pueda convertir el string a un formato de fecha reconocido por MariaDB.

SET fecha=STR_TO_DATE(@fecha,'%d/%m/%Y'); : con la siguiente instrucción se convierte el formato de fecha 'dd/mm/yy' al formato 'yyyy/mm/dd' le introducimos a el campo fecha de la tabla la información que devuelve la función STR_TO_DATE donde le indicamos la variable temporal y el formato que trae.

También menciono que el archivo CSV no tenia encabezados de columnas así que no era necesario eliminar la 1ra línea ya que todos eran datos, si necesitaramos eliminar la 1ra línea de encabezado se usaría la cláusula

IGNORE 1 LINES

Que en este caso se colocaría después de FIELDS TERMINATED BY ','.