Plsql 部门id=80的每位员工的程序升级佣金
我试图编写一个程序,为80部门的每位员工升级佣金pct,新的佣金pct为(工作年数/10)*0.5。 这是我的密码。我的问题是如何将这个新的佣金pct添加到代码中并调用该过程。谢谢Plsql 部门id=80的每位员工的程序升级佣金,plsql,Plsql,我试图编写一个程序,为80部门的每位员工升级佣金pct,新的佣金pct为(工作年数/10)*0.5。 这是我的密码。我的问题是如何将这个新的佣金pct添加到代码中并调用该过程。谢谢 PROCEDURE increase_comm(department_id NUMBER, comm_incr NUMBER) IS curr_comm NUMBER; BEGIN SELECT commission_pct INTO curr_comm FROM employees
PROCEDURE increase_comm(department_id NUMBER, comm_incr NUMBER) IS
curr_comm NUMBER;
BEGIN
SELECT commission_pct
INTO curr_comm
FROM employees
WHERE employees.department_id = increase_comm.department_id;
IF curr_comm IS NULL
THEN RAISE no_comm;
ELSE
UPDATE employees
SET commission_pct = commission_pct + comm_incr;
END IF;
END;
你把问题解释得很混乱,但如果我是对的, 假设comm_incr为0.5,则:
PROCEDURE increase_comm(deptno NUMBER, comm_incr NUMBER) IS
curr_comm NUMBER;
BEGIN
SELECT commission_pct
INTO curr_comm
FROM employees
WHERE department_id = deptno;
IF curr_comm IS NULL
THEN RAISE no_comm;
ELSE
UPDATE employees
SET commission_pct = curr_comm * comm_incr;
END IF;
END;
您可以这样执行的过程:
begin
execute increase_comm(80,0.5);
end;