存储过程
- 使用存储过程来解决涨工资
- 涨工资,总裁涨1000,经理涨800,其他人涨400。
伪代码:
ResultSet rs = “select empno,job from emp”;
While(rs.next()){
Int eno = rs.getInt(“empno”);
String job = rs.getString(“job”);
If(“PRESIDENT”.equals(job))
{
update emp set sal = sal+1000;
}else if(“Manager”.equals(job))
{
update emp set sal = sal+800;
}else
{
update emp set sal = sal+400;
}
}
分析:那么上面这样的一个过程,使用存储过程(PL/SQL)就可以轻松解决。可以写很少的java代码。
①.查询emp表:7839的姓名和薪水并打印.
declare
pename emp.ename%type;
psal emp.sal%type;
begin
--得到7839的姓名和薪水
select ename,sal into pename,psal from emp where empno = 7839;
dbms_output.put_line(pename||'的薪水是'||psal);
end;
运行结果:KING的薪水是5000
②.使用记录型变量
记录型变量:取这个表里面的一行作为我们的这个类型,那么一行有多个列,那么就有多个类型,相当于一个数组。
多个数据类型作为的我们的数据类型。
set serveroutput on
declare
emp_rec emp%rowtype;
begin
select * into emp_rec from emp where empno=7839;