Muchas veces en la práctica vamos a encontrarnos con la siguiente situación, nos envían de algún lugar datos en un fichero CSV (Fichero que tiene valores separados por comas), y necesitemos almacenar estos en nuestra base de datos, los motivos pueden ser varios, importación de datos de alguna base datos que no solamente puede ser SQL Server mismo, algún programa externo a nosotros genera este tipo de ficheros, por cuestión de interoperabilidad con otras empresas se decide utilizar este mecanismo, en fin, cualquier motivo resulta válido para el caso.
El punto más bien es utilizar un mecanismo más rápido de inserción de los mismos a nuestra BD, que tener que programar una aplicación que haga este trabajo. SQL Server tiene su propia herramienta que hace esto por nosotros, se lo puede hacer de manera gráfica como por línea de comandos. Evidentemente no veremos el modo gráfico porque es demasiado intuitivo que no requiere explicación, pero si sería interesante conocer como esa pantalla gráfica hace “por debajo” este trabajo, que nosotros mismo podemos hacerlo.
El comando BULK nos ayudara, veamos un ejemplo práctico. Creemos la siguiente tabla:
1 2 3 4 5 6 7 8 9 | USE BD CREATE TABLE CSVPersona ( IdPersona INT, Nombre VARCHAR(40), Apellidos VARCHAR(40), Nacimiento DATETIME ); GO |
Luego necesitamos crear nuestro fichero Personas.CSV con los siguientes datos:
1,OMAR,ACUÑA,1980/12/14 2,MARIA,VILLALBA,1986/03/02 3,LUIS,FERREIRA,2010/05/02 4,ABRAHAM,RODRIGUEZ,1964/05/12
Y es aqui donde entra en acción SQL Server insertando los datos del siguiente modo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | -- Seteamos el formato de fecha para que funcione correctamente este fichero SET DATEFORMAT YMD; GO -- Procedemos a la importacion BULK INSERT CSVPersona FROM 'D:\PERSONAS.CSV' WITH ( -- seteamos el separador de campos FIELDTERMINATOR = ',', --seteamos el separador de registro ROWTERMINATOR = '\n' ); GO -- Verificamos los datos select * from csvpersona |








en
en
en
Que tal.
Estoy haciendo un sistema con MySQL y Java y necesito importar los datos de 3200 registros a través de un archivo de comas. Este código lo podría utilizar en un pequeño frame de Java verdad?
Saludos!
Hola Gerardo,
Éste código sólo sirve para usarlo en MS SQL, lo que si te va servir es ésto:
http://www.devtroce.com/2011/03/28/insertar-datos-desde-un-csv-a-mysql-con-java/