2016-05-29 7 views
-1

のすべての従業員のcommission_pctを、部門80のすべての従業員のためにcommission_pctをアップグレードしようとしています。新しいcommission_pctは(作業年数/ 10)* 0.5です。 私のコードがあります。私の質問は、この新しいcommission_pctをコードに追加し、プロシージャを呼び出す方法です。おかげ手順department_id = 80

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; 

答えて

0

は、あなたは非常に紛らわしい方法であなたの問題を説明したが、私は右だ場合、 とその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;