Какую версию вы используете?
На Oracle 11R2 отлично работает следующее:
drop table tq84_eventdate;
create table tq84_eventdate (
data varchar2(10),
eventdate timestamp(0)
);
create trigger tq84_eventdate_trg
before insert on tq84_eventdate
for each row
begin
SELECT * INTO :NEW.EVENTDATE FROM (SELECT SYSDATE FROM DUAL);
end tq84_eventdate_trg;
/
insert into tq84_eventdate (data) values ('test');
select * from tq84_eventdate;
Однако, если я сделаю
insert into tq84_eventdate (data) values ('value too large!');
Я получил упомянутый вами ORA-12899. Таким образом, ошибка, вероятно, связана не с оператором выбора, который вы опубликовали, а с данными, которые вы фактически пытаетесь вставить.
Кроме того, для связанной заметки вы можете назначить sysdate непосредственно в триггере, то есть без косвенного действия оператора select:
create trigger tq84_eventdate_trg
before insert on tq84_eventdate
for each row
begin
:new.eventdate := sysdate;
end tq84_eventdate_trg;
/