[英]pl/sql procedure with savepoint
I have a table employee with columns: id, name, department, salary. 我有一个表雇员,其列为:id,姓名,部门,薪水。 I want to create a procedure which increase salary for all employees in a specific department and run procedure if salary is less than 500, otherwise return to savepoint. 我想创建一个程序来增加特定部门中所有雇员的工资,如果工资少于500,则运行该程序,否则返回保存点。 I don't know how to write the exception 我不知道怎么写异常
CREATE PROCEDURE `procedure1` (IN dep1 INT(11), IN sal1 INT(11))
BEGIN
SAVEPOINT point1;
UPDATE employee SET salary=salary+sal1
WHERE department=dep1;
EXCEPTION
WHEN salary>500 THEN
ROLLBACK TO point1;
END
maybe you need to review your point of view, because you can add another WHERE clause in order to update only those salaries who are less than or equal to 500, eg: 也许您需要审视您的观点,因为您可以添加另一个WHERE子句以仅更新那些小于或等于500的薪水,例如:
UPDATE employee SET salary=salary+sal1
WHERE department=dep1
AND salary <= 500;
With this I think you don't need a SAVEPOINT, however find here how to use it: SAVEPOINT 有了这个,我认为您不需要SAVEPOINT,但是请在这里找到如何使用它: SAVEPOINT
Hope this help!!. 希望对您有所帮助!
CREATE OR REPLACE PROCEDURE procedure1 (dep1 IN NUMBER, sal1 IN NUMBER)
BEGIN
UPDATE employee SET salary=salary+sal1
WHERE department= dep1 and
salary <= 500;
COMMIT;
END;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.