【发布时间】:2020-04-29 11:02:39
【问题描述】:
我被 PL/SQL 程序的顺序搞砸了 我需要做一个接收部门编号、薪水和百分比作为参数的程序;并提高电话中指定部门的所有员工的工资。增加的金额将是电话中指示的百分比或薪水(在每种情况下,以对员工更有利的为准)。 我有这个代码,但不起作用。
CREATE OR REPLACE PROCEDURE pujarSalari (numdept number,diners number,percentatge number)
AS
souapujar number(10);
CURSOR buscarnoms IS SELECT codi_emp FROM empleats WHERE codi_dept=numdept;
BEGIN
OPEN buscarnoms;
FETCH buscarnoms INTO souapujar;
WHILE buscarnoms%FOUND LOOP
IF (empleats.sou*(1+percentatge/100))>=(empleats.sou+diners) THEN
UPDATE empleats set empleats.sou=empleats.sou*(1+percentatge/100) where codi_emp=souapujar;
ELSE
UPDATE empleats set empleats.sou=empleats.sou+diners where codi_emp=souapujar;
END IF;
FETCH buscarnoms INTO souapujar;
END LOOP;
CLOSE buscarnoms;
END;
错误码是
Procedure PUJARSALARI compilado
LINE/COL ERROR
--------- -------------------------------------------------------------
9/1 PL/SQL: Statement ignored
9/14 PLS-00357: Table,View Or Sequence reference 'EMPLEATS.SOU' not allowed in this context
Errores: comprobar log de compilador
【问题讨论】:
-
请提供示例数据、期望的结果以及您想要实现的逻辑的解释。