我想编写一份程序,首先打印员工的员工编号和工资(即7839)。 然后它会增加员工7839的工资(这将是员工 表雇员中的数字)符合以下条件:
@Entity
@Audited
@Table(....
public class Worker
{
private Long id;
private String name ;
}
@Entity
@Audited
@Table(....
public class Department
{
private Long id;
private String departmentName;
private Worker worker;
}
该计划将在增加前后打印员工编号和工资 我尝试了以下步骤,但不确定它的准确程度。我需要将其转换为PROCEDURE代码。
请告知
Department
答案 0 :(得分:0)
尝试使用RETURNING子句并使用RETURNING子句添加异常块
DECLARE
veno emp.empno%type:=&veno;
vsal emp.sal%type;
vexp number;
BEGIN
select empno,sal,trunc(to_char(months_between(sysdate,hiredate)/12))into veno,vsal,vexp from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('before update:' ||chr(10)||veno||chr(10)||vsal);
if vexp>=10 then
update emp set sal=sal+(sal*.20) where empno=veno;
select sal into vsal from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('after update:' ||chr(10)||vsal);
elsif vexp>=5 then
update emp set sal=sal+(sal*.10) where empno=veno;
select sal into vsal from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('after update:' ||chr(10)||vsal);
else
update emp set sal=sal+(sal*.05) where empno=veno;
select sal into vsal from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('after update:' ||chr(10)||vsal);
end if;
END;
/