Подозирам, че сте объркали всичките си изходни данни в изявлението си за сливане. Искате да вземете предвид само вмъкнатите редове, нали?
Мисля, че тригерът ви трябва да бъде нещо като:
CREATE OR REPLACE TRIGGER test_tri
after INSERT
ON test1
FOR EACH ROW WHEN (NEW.col5 >= '01-MAY-16')
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF INSERTING
THEN
MERGE INTO test_hist hist
USING (select :new.package_id, :new.col1, :new.col2, :new.col3, :new.col4, :new.col5
from dual) t1
ON (t1.PACKAGE_ID=hist.PACKAGE_ID)
WHEN MATCHED THEN
UPDATE SET hist.col5=t1.col5
WHEN NOT MATCHED THEN
INSERT (col1, col2, col3, col4, col5)
VALUES (t1.col1, t1.col2, t1.col3, t1.col4, t1.col5);
END IF;
COMMIT;
END;
/
N.B. ако :new.col5 е колона с дата, тогава променете:
FOR EACH ROW WHEN (NEW.col5 >= '01-MAY-16')
до
FOR EACH ROW WHEN (NEW.col5 >= to_date('01/05/2016', 'dd/mm/yyyy'))
Годините имат 4 цифри (предположих, че имахте предвид 2016, а не 1916!).