如何解决当一天中的特定时间过去时,我们如何创建触发器或任何对象以将行插入到出勤表中?
我是PL / SQL和Oracle APEX的新手。在oracle APEX中,我试图创建一个触发器,该触发器将在员工在特定时间(例如12:00 PM)而不是星期五之后不在时触发。 我的出勤表中有这些列:emp_id,work_date,attack_stat。 emp_id是从员工表引用的外键 当过了12:00 PM,并且没有特定员工的出勤条目时,我想要为该员工插入一行,如下所示:
insert into attendances(emp_id,work_date,attend_Stat)
values("ID OF NOT PRESENT EMPLOYEE",sysdate,'A');
我已经编写了这个pl / sql语句,但是我找不到实现它的方法,或者弄清楚它是否还能工作。
declare
cursor c_emp_id is
select emp_id from employees;
cursor c_emp_at is
select emp_id from attendances where work_date = sysdate and to_char(sysdate,'DAY') <> 'FRIDAY';
begin
for i in c_emp_id loop
for a in c_emp_at loop
if i.emp_id <> a.emp_id then
insert into attendances(emp_id,attend_stat)
values(i.emp_id,systimestamp,'A');
end if;
end loop;
end loop;
exception
when no_data_found then
for i in c_emp_id loop
insert into attendances(emp_id,attend_stat)
values(i.emp_id,'A');
end loop;
end;
我该如何实现?
解决方法
您需要将代码保存在程序包或存储过程中,并将其设置为作为数据库作业运行。有关详细信息,请参见documentation。 请注意,该文档适用于数据库的版本11,请检查您使用的版本
select version from v$instance
和Google查看实际文档
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。