Con este Script en lenguaje Batch recuperamos los datos que se encuentran en el fichero archivo.sql (son INSERTS en la base de datos), y lo separamos en dos partes, cada parte en una línea diferente. Usamos el delimitador que se encuentra en el insert “;” para saltar de linea y escribir el texto restante en la siguiente linea. Al final de la lectura de todo el archivo.sql añadimos un “commit;”, que necesitabamos para completar los inserts.
El script creará el fichero formateado.sql que tendrá el formato que necesitamos para realizar nuestros inserts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | @echo off ::Elimina el archivo formateado.sql en caso de que exista del formateado.sql.txt CLS set /a contador=0 set /a porcentaje=0 set /a total=0 ::Primera cabecera ECHO Preparando archivo... ::Recorre el fichero SQL llamando a countSQL para cada linea ignorando la cabecera del archivo for /f "skip=1 tokens=1-2 delims=;" %%a in (archivo.sql) do call :countSQL "%%a" "%%b" ::Recorre el fichero SQL llamando a Formatear para cada linea ignorando la cabecera for /f "skip=1 tokens=1-2 delims=;" %%a in (archivo.sql) do call :Formatear "%%a" "%%b" ::Saltamos al final 'Done' e incluimos el commit que necesitamos GOTO Done ::Funcion que maqueta y guarda el insert :Formatear call:incrContador ECHO %~1)>>formateado.sql echo ;>>formateado.sql 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 % :countSQL set /a total=%total%+1 GOTO EOF ::Al terminar añade un commit :Done ECHO commit>>formateado.sql Echo ;>>formateado.sql PAUSE :EOF |