Это должно сделать это (конечно, сначала изменить, чтобы соответствовать вашей таблице / столбцам):
create or replace trigger create_csv
after update on table_name for each row
declare
file_handle text_io.file_type;
cursor c_table_name is
select foo, bar, baz
from table_name
;
begin
file_handle := text_io.fopen('path/to/csv/file');
for table_row in c_table_name loop
text_io.put_line(
file_handle,
replace(table_row.foo, ',', '\,')||','||
replace(table_row.bar, ',', '\,')||','||
replace(table_row.baz, ',', '\,')
);
end loop;
text_io.fclose(file_handle);
end;