甲骨文程序增薪与参数

时间:2018-06-19 20:36:03

标签: oracle oracle-sqldeveloper procedure

自2天以来,我一直在努力解决此问题,我想我会发疯。我认为有一个简单的方法,但我看不到。

首先是我的桌子:

  • 人员(P_ID,P_NAME,P_SURNAME,BIRTH_DATE,DEPT_CODE)
  • PERSONNEL_SPECIAL(P_ID,SALARY)
  • PERSONNEL_ATTENDANCE(ID,P_ID,A_DATE,A_TIME,STATUS)
  • 部门(DEPT_CODE,DEPT_NAME,Education_TYPE,FACULTY_CODE)
  • FACULTY(FACULTY_CODE,FACULTY_NAME)

我想编写一个程序来增加作为参数指定的教职员工的薪水。参数是faculty_code。

如果您能帮助我,我将感激您。我不知道也许我的大脑太累了,这就是为什么我找不到解决方案。还是谢谢你

1 个答案:

答案 0 :(得分:0)

这样的作品行吗?

create or replace procedure p_inc_sal (
   par_faculty_code   in faculty.faculty_code%type,
   par_pct_inc        in number)
is
begin
   update personnel_special ps
      set ps.salary = ps.salary * (1 + par_pct_inc / 100)
    where exists
             (select null
                from personnel p
                     join department d on d.dept_code = p.dept_code
               where     d.faculty_code = par_faculty_code
                     and p.p_id = ps.p_id);
end;