Sql 更新薪资的函数
我需要创建一个函数(或者如果有更有效的方法),将emp中的最小sal更新为0.01 我试过几种方法,但都想不出来Sql 更新薪资的函数,sql,plsql,Sql,Plsql,我需要创建一个函数(或者如果有更有效的方法),将emp中的最小sal更新为0.01 我试过几种方法,但都想不出来 CREATE OR REPLACE FUNCTION update_sal RETURN NUMBER; IS emp.sal NUMBER; BEGIN UPDATE emp SET emp.sal = (SELECT MIN(emp.sal) FROM emp) * 0,1); END update_sal; 有什么建议吗?您的函数
CREATE OR REPLACE FUNCTION update_sal RETURN NUMBER;
IS emp.sal NUMBER;
BEGIN
UPDATE emp
SET emp.sal = (SELECT MIN(emp.sal) FROM emp) * 0,1);
END update_sal;
有什么建议吗?您的函数有很多语法错误,而且由于您实际上没有返回任何内容,因此需要使用一个过程
create or replace procedure update_sal
is
begin
update emp
set sal = sal * .01
where sal = (select min(sal) from emp);
end;
我相信这正是你想要的:
CREATE OR REPLACE FUNCTION update_sal RETURN NUMBER
IS emp.sal NUMBER;
BEGIN
UPDATE emp
SET emp.sal = emp.sal * 0,1
WHERE emp.sal = (SELECT MIN(e.sal) FROM emp e)
END update_sal;
您试图在集合中同时限制和更新。限制在何处,使用集合更改值
根据经验,如果您的更新最终没有WHERE子句,则说明有问题。根据@oldProgrammersSpot,您应该将其声明为一个过程,而不是一个函数。