PL-SQL过程中的IF / THEN

时间:2019-05-13 19:55:09

标签: if-statement exception stored-procedures sql-update sqlplus

我必须创建用于更新表DEPARTMENTS中的行的过程。参数是department_id,部门名称,位置,部门的manager_id。然后我必须检查部门名称是否唯一,是否在TABLE位置中有这样的位置,是否在TABLE员工中有manager_id。如果不符合要求,则记录必须放入ERROR_DEPARTMENTS。不幸的是,我不知道如何包括每个要检查的参数。我进行了一项研究,我认为我需要使用IF / THEN,但是我不确定在哪里以及如何使用。

create unique index uni_dept on department_name;  

create table error_depart as select * From departments where 1 = 2;

create or replace procedure UPD_DEPARTMENT (v_depid  in number, v_depn in 
varchar2, v_lid in number,v_phn in number)
    is
    begin
      update DEPARTMENTS d set
        d.department_name = v_depn,
         d.location_id = v_lid
        where d.department_id = v_depid;
    exception
      when dup_val_on_index then
       insert into ERROR_DEPART (department_id, 
department_name,location_id) values (v_depid, v_depn,v_lid);
   end;

   begin
    UPD_DEPARTMENT(10, 'Finance', 1900,4);   
    UPD_DEPARTMENT(110, 'Naval', 1900,3);    
end;

0 个答案:

没有答案