Bases de Datos - Procedure en PL/SQL

 
Vista:

Procedure en PL/SQL

Publicado por Sharon (1 intervención) el 15/12/2022 18:23:07
Realmente no se como empezar con esta practica que he de hacer soy practicamente principiante...si alguien porfavor me puede echar un cable, lo agradeceria:

Enunciado --

Crea un procedure de nombre eventdb que deberá realizar la copia o extracción de todas las tablas de la bbdd donde se cargue, de forma que se pueda obtener un archivo .csv de cada tabla con el siguiente formato de nombre de archivo.
DATAiHora_nombreTaula.csv y que se guardará en el directorio /tmp que es donde el daemon podrá escribir sin problemas.

Para obtener la DATAyHora podemos utilizar: SET @nom Archivo = DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s');


El resto del nombre, lo tendrás que CONCATenar

El formato de salida lo puedes obtener con un SELECT* de cada tabla en la forma:
Ejemplo
SELECT * FROM nombre INTO OUTFILE /ruta/nombreArchivo.csv


Por defecto el separador de campos, será el tabulador
Para saber el nombre de cada tabla deberás consultar el diccionario de datos sobre la bbdd actual e iterar con un cursor sobre la relación de tablas que obtendrás.
También es posible que necesites utilizar una sentencia preparada para exportar cada mesa, por tanto deberá estar dentro del cursor.

Una vez pruebes el procedimiento y te funcione de forma manual deberás enlazarlo a un EVENT que se ejecutará cada 15 segundos en un INTERVALO de tiempo suficiente para que se pueda ejecutar 8 veces. Cuando finalice, el EVENT habrá desaparecido.

Tendrás que controlar con SHOW PROCESSLIST la evolución del EVENT y al finalizar, hacer un listado de /tmp/*.csv (ls -l /tmp/*.csv) para obtener la lista de archivos creados y sus metadatos .


Un saludo,
Sharon
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder