Я создал пользовательскую таблицу для этого примера
create table users (
id number generated by default on null as identity
constraint users_id_pk primary key,
name varchar2(50),
the_user varchar2(20),
email varchar2(30),
created date not null,
created_by varchar2(255) not null,
updated date not null,
updated_by varchar2(255) not null
);
-- triggers
create or replace trigger users_biu
before insert or update
on users
for each row
begin
if inserting then
:new.created := sysdate;
:new.created_by := nvl(sys_context('APEX$SESSION','APP_USER'),user);
end if;
:new.updated := sysdate;
:new.updated_by := nvl(sys_context('APEX$SESSION','APP_USER'),user);
end users_biu;
/
Когда страница загружена, я вычисляю последнего созданного пользователя
declare
l_user varchar2(30);
begin
select the_user into l_user
from users
order by id desc
FETCH FIRST 1 ROWS ONLY;
return l_user;
end;
Создайте проверку, я сравнил с 1 часом, но вы можете использовать свои собственные правила
declare
l_created_hour varchar2(50);
l_next_hour varchar2(50);
begin
select to_char(CREATED,'DD-MM-YYYY hh:mi:ss'),
to_char(CREATED + 1/24,'DD-MM-YYYY hh:mi:ss')
into l_created_hour, l_next_hour
from USERS
where the_user = :P3_LAST_USER;
if l_next_hour >= l_created_hour then
return false;
else
return true;
end if;
end;
Результат
Скачать приложение