【发布时间】:2023-04-02 08:40:01
【问题描述】:
表:
create table department(deptno number, deptname varchar2(50), deptloc varchar2(50));
insert into department values(1,'A','X');
insert into department values(2,'B','Y');
insert into department values(3,'C','Z');
存储过程:
create or replace procedure secure_dml(i_month IN varchar2)
is
begin
if i_month <> 'March' then
dbms_output.put_line('You can modify or add a department only at the end of a financial year');
else
--should I write insert/update DML statement?
end;
触发器:
create or replace trigger tr_check_dept before insert on department
begin
dbms_output.put_line('Record inserted');
end;
要求:
在过程和触发器的帮助下实现以下业务规则:-
-
我。仅允许在 3 月份更改 Department 表中的数据。
-
二。创建一个名为 SECURE_DML 的过程,以防止 DML 语句在除 3 月之外的任何其他月份执行。如果用户尝试在除 3 月之外的任何其他月份修改表,则该过程应显示一条消息
“您只能在财政年度结束时修改或添加部门”
-
三。在调用上述过程的 Department 表上创建一个名为 TR_CHECK_DEPT 的语句级触发器。
-
四。通过在 Department 表中插入一条新记录来测试它
【问题讨论】:
标签: oracle stored-procedures plsql triggers