我有一張名爲employees的表。我正在嘗試創建一個匿名PLSQL塊,輸出僱員表中僱員的姓氏,工資和僱用名稱。如果僱員僱用5年以上,那麼在員工記錄旁邊,我應該顯示字符串:'提前10%提前到期'並計算加薪並將其顯示在記錄旁邊。
我需要使用當年(2016年)進行計算,以確定每個員工都需要加薪。使用光標查找需要更新薪水的所有員工
set serveroutput on
DECLARE
v_empno employees.employee_id%TYPE;
v_lname employees.last_name%TYPE;
v_salary employees.salary%TYPE;
v_hiredate employees.hiredate%TYPE;
v_newsalary number(8,2);
CURSOR c_emp IS
SELECT e1.employee_id, e1.last_name, e1.salary, e1.hiredate
FROM employees e1,
(SELECT employee_id, TRUNC(MONTHS_BETWEEN(sysdate, hiredate)/12) years_of_service
FROM employees
) e2
WHERE e1.employee_id =e2.employee_id and years_of_service >5;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp into v_empo, v_lname, v_salary, v_hiredate
DBMS_OUTPUT.PUT_LINE(v_empno ||' '||v_lname || ' ' || v_salary ||' '||v_hiredate);
END LOOP;
END;
那麼是什麼問題?你有沒有得到任何錯誤? – Hawk
我確實收到了一些錯誤,但它告訴我我錯誤地使用了遊標並沒有編譯。 – Venom