Вы можете использовать ПРОЦЕДУРУ , состоящий из ОБЫЧНЫЙ СОБИРАТЬ с FORALL :
SQL> set serveroutput on;
SQL> CREATE OR REPLACE PROCEDURE pr_list_constraints(
i_owner IN all_cons_columns.owner%TYPE
)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Constraint Types for '||i_owner);
DBMS_OUTPUT.PUT_LINE('------------------------------- ');
FOR constraint_rec
IN (SELECT distinct cons.constraint_type
FROM all_constraints cons, all_cons_columns cols
WHERE cols.owner = i_owner --'DAB_NAME'
--AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner)
LOOP
DBMS_OUTPUT.PUT_LINE(constraint_rec.constraint_type);
END LOOP;
END;
/
SQL> var p_owner varchar2(50);
SQL> exec pr_list_constraints(:p_owner);
Constraint Types for DAB_NAME
-------------------------------
R
U
P
C
P.S. Использование триггера БД не имеет значения для задач такого типа.