RE:almacenar actualizaciones en archivo txt
Para comenzar yo crearia un trigger de after update sobre la tabla, y desde este trigger mandaria a llamar a un procedimiento almacenado al cual le enviaria paramatros como Nombre de Tabla, Fecha, Hora, usuario, etc. Para que guarde la información en el archivo de texto.
El paquete que tienes que utilizar para manipular archivos desde la base un procedimiento almacenado es "utl_file".
Lo que te pongo es una explicación de como leer un archivo, pero ta da una muy buena idea de lo que tendrias que hacer para escribir en un archivo:
1. Definís un directorio en el servidor (a nivel de Sistema Operativo) donde vas
a guardar tus archivos, supongamos que el mismo está en el disco C, y sea
c:\archivos. Le das permisos de lectura y escritura en dicho directorio al
usuario Oracle (que es quien ejecuta los procesos almacenados en la base). Este
último paso también a través de las herramientas del S.O.
2. Toda base de datos arranca con un archivo de parámetros, que es un archivo
auxiliar que le permite al motor definir el tamaño de las estructuras de
memoria de la instancia, validar los archivos de la base, etc., en definitiva,
iniciar la base de datos para que quede disponible para su uso. Dependiendo de
la versión de base de datos que usés, podés tener 2 tipos distintos de arhivos
de inicialización (antes de 9i sólo existía uno, el initXXX.ora). Los archivos
pueden ser el initXXX.ora (donde XXX es el nombre de la instancia de la base de
datos) o el spfile, que es un archivo binario, nuevo a partir de 9i (y el usado
por defecto a partir de dicha versión) y que te permite cambiar ciertos
parámetros y que dicha actualización se realice en el momento, es decir, sin
reiniciar la base como te ocurre con el primer tipo de archivos. Bueno, toda
esta perorata es sólo para decirte que es acá donde tenés que definir el
parámetro UTL_FILE_DIR, aunque te aviso que el mismo no se puede cambiar
online, por lo que vas a tener que reiniciar la base una vez definido el
parámetro. Supongamos que tenés el archivo de inicialización initDB.ora
(archivo de texto). Simplemente definís el parámetro así:
utl_file_dir = c:\archivos
3. En la base, vas a tener que crear un objecto directorio, estos objetos son
propiedad del usuario SYS, aunque los crees en otros esquemas. Un objecto
directorio es, simplemente, un alias para referirse dentro de la base a un
directorio físico del sistema de archivos del S.O.. Para crear dicho objeto,
simplemente:
CREATE DIRECTORY MI_DIR AS 'C:\ARCHIVOS';
Luego le damos permiso de lectura y escritura al usuario/esquema oracle que va a
ejecutar el procedimiento almacenado para que tenga acceso al directorio con:
GRANT WRITE, READ ON DIRECTORY MI_DIR TO usuario;
4. Después de haber hecho todo lo anterior, ya podrás usar el procedimiento que
definiste para leer y escribir archivos de texto en una carpeta del servidor.
Espero que te haya servido. Saludos.