使用HR数据库的程序

时间:2015-08-21 09:38:16

标签: sql plsql procedure

我想编写一份程序,首先打印员工的员工编号和工资(即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

1 个答案:

答案 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;
/