Sentencias SQL INSERT desde Excel
Un problema con el que nos solemos encontrar a menudo los que trabajamos en sistemas, son las migraciones de datos. Muchas veces tenemos que subir datos en forma masiva a nuestra base de datos y lo único que tenemos es una planilla Excel. En ese momento solemos pensar, que bueno sería si yo pudiera crear directamente desde Excel las sentencias SQL necesarias para insertar los datos!. Lamentablemente Excel aun no cuenta con una función como esa, pero si es una herramienta lo suficientemente flexible como para permitirnos crear nuestra propia función para realizar esa tarea!! :). En este artículo les voy a mostrar como utilizando VBA podemos solucionar este problema.
La forma más fácil para crear sentencias de SQL INSERT desde Excel, es utilizando mi complemento, el cual pueden descargar desde aquí:
DESCARGAR COMPLEMENTO JDERaulo
Una vez instalando, van a ver que tienen un botón arriba a la derecha que se llama “Crear SQL Insert”, solo deben seleccionar el rango de datos sobre los que quieren crear las sentencias INSERT y presionar ese botón.
IMPORTANTE: Tengan en cuenta que la primera fila de los datos seleccionados debe incluir los nombres de los campos de la tabla sobre la que se van a insertar los datos.
Verán que Excel les abre una ventana de dialogo en la que deberán ingresar la librería/tabla sobre la que quieren insertar los datos; en el ejemplo JDEDATA910.F0901.
Una vez que ingresan esa información se les abrirá otra ventana de dialogo, en este caso una pregunta.
Aquí deben responder si quieren que cada sentencia INSERT finalice con “;”. Esto es para mantener compatibilidades entre las diferentes bases de datos. Por ejemplo, si utilizan una base de datos Oracle deberan responder “Sí”.
Una vez que responden a esta pregunta, los datos se comienzan a procesar y cuando terminan de ser procesados nos devuelve una tercer ventana de diálogo con la cantidad de sentencias INSERT creadas.
Asimismo verán que en su Excel existe una nueva hoja que se llama “raulo_insert” donde se incluyen las sentencias INSERT creadas.
No tienen más que copiarlas y procesarlas con su cliente de base de datos favorito para insertarlas.
Muy fácil!!! :). En el manual que se descargan junto con mi complemento también van a poder encontrar estas instrucciones.
En el caso de que no deseen utilizar mi complemento, aquí les dejo el siguiente gist con el código que utilicé para crear esta macro; siéntanse libres de modificarla como gusten.
Cualquier inconveniente, me dejan un comentario.
Saludos!
TE PASASTE, MIL GRACIAS REALMENTE!
El archivo esta corrupto, no se puede abrir.
Hola Jhoan, el archivo no esta corrupto, es un complemento…los complementos no se abren como cualquier archivo de excel, sino que se instalan para que abran directamente en cualquier instancia de Excel. Saludos
Muchas gracias, muy útil.
Te quedo muy util, excelente, te ahorras un buen de trabajo, lo probe con pocos registros, falta probarlo con muchos registros haber que pasa. Pero aun así esta genial.
Ya probe con mas de 30000 registros y manda msj de error por desbordamiento. Bueno solo funciona con pocos registros.
Buen Días, al ejecutar el generador de insert se queda pegado, sera por la cantidad de información? es una tabla con 81 columnas y 8000 filas