Saltar al contenido
Codif铆ca.me | Desarrollo web | Programaci贸n

Crear script de carga de datos con batch

5 diciembre, 2016

En muchas ocasiones tenemos un documento excel, csv, etc… repleto de informaci贸n que nos interesa maquetar en inserts para cargas masivas de datos. En este documento se muestra como leer, maquetar y generar un txt con las sentencias de insercci贸n usando Batch con los datos en un csv limitado con ;’.
CSV

Supongamos que tenemos un csv con dos columnas y con cabecera. Las dos columnas son:

  • numero: Con numeros
  • texto: Con texto

Ejemplo:

numero;texto
001;hola
034;wikicode
023;adios
076;carga
032;masiva

Insert

El formato del insert ser谩 el siguiente:

INSERT INTO mi_tabla (contador, numero, texto) VALUES (x,y,z);

Donde x,y,z son:

y y z: Se alimentar谩n de las columnas del csv
x: Es un contador que debemos incrementar nosotros (no la base de datos)

Carga masiva batch

Este es el fichero batch, para que funcione debe existir un archivo info.csv en la misma carpeta donde se ejecuta.

@echo off
::Elimina el script anterior
del script.txt
CLS
set /a contador=0
set /a porcentaje=0
set /a total=0
 
::Primera cabecera
ECHO Preparando archivo...
 
::Recorre el csv llamando a countCSV para cada linea ignorando la cabecera
 
for /f "skip=1 tokens=1-2 delims=;" %%a in (info.csv) do call :countCSV "%%a" "%%b"
 
::Recorre el csv llamando a WriteCSV para cada linea ignorando la cabecera
 
for /f "skip=1 tokens=1-2 delims=;" %%a in (info.csv) do call :WriteCVS "%%a" "%%b"
 
::Manda al final santandose el WriteCVS
GOTO Done
 
::Funcion que maqueta y guarda el insert
:WriteCVS
call:incrContador
ECHO insert into mi_tabla (contador, numero, texto) values (%contador%,%~1,'%~2');>>script.txt
set /a porcentaje=(%contador%*100)/%total%
cls
ECHO Creando... %porcentaje%%%
GOTO EOF
 
::Funcion que incrementa
:incrContador
set /a contador+=1
GOTO EOF
 
::Funcion que cuenta para %
:countCSV
set /a total=%total%+1
GOTO EOF
 
::Al terminar a帽ade un commit
:Done
ECHO commit;>>script.txt
PAUSE
:EOF

codigo programacion SEO web