【发布时间】:2020-09-18 01:00:20
【问题描述】:
我通过考虑班次表数据创建了一个计算员工工资的程序 我的轮班表是,
CREATE TABLE SHIFT
(SHIFT_ID NUMBER(4),
SHIFT_DATE DATE,
CUSTOMER_ID NUMBER(4),
SERVICE_ID NUMBER(4),
EMPLOYEE_ID NUMBER(4),
SHIFT_CHARGE FLOAT(10),
PRIMARY KEY(SHIFT_ID)
);
我的程序是,
CREATE OR REPLACE PROCEDURE CAL_SALLARY
AS
CURSOR SHIFT_CURSOR IS SELECT EMPLOYEE_ID,SUM(SHIFT_CHARGE) AS SALARY FROM SHIFT GROUP BY EMPLOYEE_ID;
BEGIN
OPEN SHIFT_CURSOR;
LOOP
FETCH SHIFT_CURSOR INTO SHIFT_REC;
EXIT WHEN SHIFT_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPLOYYE ID : '||SHIFT_REC.EMPLOYEE_ID||' SALARY : '||SHIFT_REC.SALARY);
END LOOP;
CLOSE SHIFT_CURSOR;
END;
/
但是当我尝试在 SQL plus 中运行这个过程时,它说编译失败。我数数发现是什么问题。 请任何人帮助我。
【问题讨论】:
-
补充一点:salary 用一个“L”拼写。
标签: oracle stored-procedures plsql cursor