Mostrando entradas con la etiqueta spool. Mostrar todas las entradas
Mostrando entradas con la etiqueta spool. Mostrar todas las entradas

miércoles, 20 de agosto de 2014

ORACLE: Uso de la utilidad Spool

Existe una utilidad de oracle  llamada "spool" para guardar todo lo que digitamos y los resultados de las consultas cuando utilizamos la consola con sqlplus.

Es util cuando debes guardar el resultado de una consulta con muchos registros o cuando requieres guardar una seria de evidencias de ejecución. Pasos:

Caso practico A: guardamos una secuencia de lineas ejecutadas.

0.Nos ubicamos en la carpeta en la que tenemos los querys que vamos a ejecutar o la carpeta en la que vamos a almacenar la salida del archivo spool.

mvs$ cd mi_dir/

1.Para utilizar el comando, entramos en una consola y nos conectamos a la base de datos:

mvs$ sqlplus esquema_base_de_datos/clave_de_esquema@sid

2.Una vez entremos a la base de datos digitamos el nombre de la utilidad, se debe tener en cuenta que se guarda en el archivo a partir del momento en que se prenda el spool lo anterior no queda guardado

sql> select 1+1 from dual;
sql> spool nombre_archivo_salida.txt
sql> select 2+4 from dual;
sql> select 2+5 from dual;
sql>spool off;
sql>quit;

3.Una vez  paramos la escritura del archivo spool con el comando spool off y cerramos la conexión validamos que en nuestro directorio este el archivo de salida
mvs$ ls 
mvs$nombre_archivo_salida.txt



Caso practico B: guardamos el resultado de una consulta especifica.

0.Nos ubicamos en la carpeta en la que tenemos los querys que vamos a ejecutar.

mvs$ cd mi_dir/

1.Para utilizar el comando, entramos en una consola y nos conectamos a la base de datos:

mvs$ sqlplus esquema_base_de_datos/clave_de_esquema@sid

2.Preparamos la consola para que nos formatee la salida de la ejecución de una consulta que tenemos almacenado en un archivo, es decir le quitamos los espacio es vacíos al inicio y al final de cada linea de la salida, le quitamos la paginación , le ponemos un tamaño de linea bien grande para que no se nos corte a la siguiente linea una misma fila etc:
sql>SET SPACE 0;
sql>SET LINESIZE 32767;
sql>SET PAGESIZE 0;
sql>SET HEADING OFF;
sql>SET FEEDBACK OFF;
sql>SET TRIMSPOOL ON; 

sql> spool nombre_archivo_salida.txt 

3.Una vez hemos preparado el ambiente para la ejecucion del archivo ejecutamos el archivo con el siguiente comando
sql> @archivo_con_queys.txt

Una vez entremos a la base de datos digitamos el nombre de la utilidad, se debe tener en cuenta que se guarda en el archivo a partir del momento en que se prenda el spool lo anterior no queda guardado

4.Cuando finalice de ejecutar las sentencias que tenemos en el archivo cerramos el spool y la conexion a la base de datos
sql>spool off;
sql>quit;

5.Al finalizar podemos ver el resultado de la consulta nuestra computadora.

mvs$ ls 
mvs$nombre_archivo_salida.txt

 NOTAS:

En el archivo que llamo archivo_con_querys pueden haber varias sentencias delete, update, select, insert, se utiliza el carácter @ para ejecución de archivos.