106 - Disparador de insercion a nivel de fila (insert trigger for each row) | 
Una empresa almacena los datos de sus empleados en una tabla denominada "empleados" y en una tabla "control", el nombre del usuario y la fecha, cada vez que se ingresa un nuevo registro en la tabla "empleados".
1 Elimine las tablas:
drop table empleados; drop table control;
2- Cree las tablas con las siguientes estructuras:
create table empleados( documento char(8), apellido varchar2(30), nombre varchar2(30), seccion varchar2(20) ); create table control( usuario varchar2(30), fecha date );
3- Cree un disparador que se dispare una vez por cada registro ingresado en "empleados"; el trigger debe ingresar en la tabla "control", el nombre del usuario y la fecha en la cual se realizó un "insert" sobre "empleados"
4- Vea qué nos informa el diccionario "user_triggers" respecto del trigger anteriormente creado
5- Ingrese algunos registros en "empleados":
 insert into empleados values('22333444','ACOSTA','Ana','Secretaria');
 insert into empleados values('22777888','DOMINGUEZ','Daniel','Secretaria');
 insert into empleados values('22999000','FUENTES','Federico','Sistemas');
 insert into empleados values('22555666','CASEROS','Carlos','Contaduria');
 insert into empleados values('23444555','GOMEZ','Gabriela','Sistemas');
 insert into empleados values('23666777','JUAREZ','Juan','Contaduria');
6- Verifique que el trigger se disparó 6 veces, una por cada fila afectada en la sentencia "insert" anteriormente ejecutada; consultamos la tabla "control":
select *from control;
Si el trigger hubiese sido creado a nivel de sentencia, no de fila, el "insert" anterior se hubiese activado una sola vez aún cuando se ingresaron 6 registros.
Ver solución
 drop table empleados;
 drop table control;
 create table empleados(
  documento char(8),
  apellido varchar2(30),
  nombre varchar2(30),
  seccion varchar2(20)
 );
 create table control(
  usuario varchar2(30),
  fecha date
 );
create or replace trigger tr_ingresar_empleados
  before insert
  on empleados
  for each row
 begin
  insert into Control values(user,sysdate);
 end tr_ingresar_empleados;
 /
 select *from user_triggers where trigger_name ='TR_INGRESAR_EMPLEADOS';
 insert into empleados values('22333444','ACOSTA','Ana','Secretaria');
 insert into empleados values('22777888','DOMINGUEZ','Daniel','Secretaria');
 insert into empleados values('22999000','FUENTES','Federico','Sistemas');
 insert into empleados values('22555666','CASEROS','Carlos','Contaduria');
 insert into empleados values('23444555','GOMEZ','Gabriela','Sistemas');
 insert into empleados values('23666777','JUAREZ','Juan','Contaduria');
 select * from control;