Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/07/2013, 17:29
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Alimentando una Base de Datos

Cuando hablas de LOAD DATA INFILE, infiero que estás hablando de MySQL, y ese comando no permite cargar las hojas Excel en forma directa. No está diseñado para eso.
De todos modos, usar de fuente de datos tablas de excel puras no es en general una buena idea porque habitualmente contienen mucha redundancia d edatos, ya que el objetivo no es construir una base de datos, sino reportes, esto es, información consolidada. Por esto mismo, para poder usar los datos de tablas de Excel se debe realizar un proceso de normalización para eliminar redundancias y prevenir inconsistencias.
En este sentido, no existe un algoritmo que lo pueda hacer, porque no sólo cada reporte de Excel es distinto, sino que cada base de datos también lo es. El algoritmo que sirva para una, no va a servir para otra.
Lo único que puedes hacer es crear tu propio algoritmo y los procesos necesarios programados, para tomar la información de las tablas, normalizarlas y transferirla a la tbase de datos que corresponda.
Personalmente he tenido que hacer esa tarea una media docena de veces, con datos que provenían de hojas de Excel o bien de webservices que devolvían objetos similares. Y en algunos casos, luego de procesar un sólo reporte recibido, llegué a alimentar diecisiete (17) tablas diferentes de una misma base...
En otras palabras: tendrás que hacerlo tu... ya que sólo tu conoces la estructura de ambas cosas.

En general, todo el proceso de normalización, te conviene hacerlo programáticamente, si es que trabajas con bases de datos en MySQL. otros DBMS pueden tener recursos distintos (Oracle, por ejemplo), pero luego tendrás que crear los SP necesarios para gestionar la normalización de los datos de todos modos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)