Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Load data infile eliminar comillas dobles en los campos

Estas en el tema de Load data infile eliminar comillas dobles en los campos en el foro de Mysql en Foros del Web. Estimados les hago una consulta, debo importar un archivo txt de 1.5Gb a una tabla en mysql, los campos estan separados por "|" una barra ...
  #1 (permalink)  
Antiguo 19/04/2010, 17:47
 
Fecha de Ingreso: octubre-2008
Ubicación: Rio 3
Mensajes: 12
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación Load data infile eliminar comillas dobles en los campos

Estimados les hago una consulta, debo importar un archivo txt de 1.5Gb a una tabla en mysql, los campos estan separados por "|" una barra y algunos de ellos tienen texto entre comillas, ejemplo
camop1|campo2|"campo3"
"aaaaaaaa"|"aaaaaaaa"|2313
la importacion me la hace bien pero cuando hago un select veo los campos con las comillas...
el comando que estoy usando es:


Código SQL:
Ver original
  1. LOAD DATA INFILE 'file.txt' INTO TABLE TABLE
  2. FIELDS TERMINATED BY '|'
  3. OPTIONALLY ENCLOSED BY '"'
  4. LINES TERMINATED BY '\n'
  5. IGNORE 1 LINES;

he probado con el ENCLOSED BY '"' y con ENCLOSED BY '\"' con iguales resultados...
alguien sabe como eliminar esas comillas?
  #2 (permalink)  
Antiguo 20/04/2010, 09:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 11 años, 7 meses
Puntos: 300
Respuesta: Load data infile eliminar comillas dobles en los campos

Creo que el camino más rápido es eliminarlo en el editor de texto. Haz una prueba y tras abrir el archivo con el bloc de notas o con el editor que uses, en buscar/cambiar de tu editor cambia " por nada.
Luego intenta la importación.
La otra opción es con consultas de actualización de datos mediante le función replace, pero tendrás que hacerlo en los tres campos.
  #3 (permalink)  
Antiguo 20/04/2010, 10:27
Avatar de claus0618  
Fecha de Ingreso: noviembre-2008
Ubicación: USA
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Load data infile eliminar comillas dobles en los campos

Antes de hacer el load data, podrias leer el txt y hacer un replace de los caracteres expeciales. Por ejemplo en php seria:

Código PHP:
Ver original
  1. str_replace('"', '', '"Esto es" una "prueba"');

Aqui cambiarias las todas comillas dobles por nada en la cadena '"Esto es" una "prueba"'

Cuando ya tengas el contenido limpio de comillas dobles, sobreescribe el txt y por ultimo lo cargas en la BD.

Espero te sea de ayuda.
  #4 (permalink)  
Antiguo 26/04/2010, 16:21
 
Fecha de Ingreso: octubre-2008
Ubicación: Rio 3
Mensajes: 12
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Load data infile eliminar comillas dobles en los campos

gracias chicos pero la verdad es que el archivo es de 6Gb, bastante impractico para leer y reemplazar las comillas con un bloc de notas, terminé haciendo un php que hace los inserts en la base, menos performante que el load data infile pero me aseguré la integridad de los datos

Etiquetas: comillas, data, infile, load
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.