一 需求
给员工职位涨工资,总裁涨1000,经理涨800,其他员工涨400
二 设计(伪代码)
ResultSet rs = "select empno,job from emp";
while(re.next())
{
int eno =rs.getInt("empno");
String job = rs.getString("job");
if(“PERSIDENT”.equals ( job))
{
update emp set sal = sal +1000 where empno = eno;
}
else if(“MANAGER”.equals ( job))
{
update emp set sal = sal +800 where empno = eno;
}
else
{
update emp set sal = sal +400 where empno = eno;
}
}
三 涨工资前数据
SQL>select*from emp;
EMPNO ENAME EMPJOB MGR HIREDATE SAL COMM DEPTNO
-----------------------------------------------------------------------------------
7369 SMITH CLERK 790217-12月-80240020
7499 ALLEN SALESMAN 769820-2月-81320030030
7521 WARD SALESMAN 769822-2月-81285050030
7566 JONES MANAGER 783902-4月-81617520
7654 MARTIN SALESMAN 769828-9月-812850140030
7698 BLAKE MANAGER 783901-5月-81605030
7782 CLARK MANAGER 783909-6月-81565010
7788 SCOTT ANALYST 756619-4月-87460020
7839 KING PRESIDENT 17-11月-81900010
7844 TURNER SALESMAN 769808-9月-813100030
7876 ADAMS CLERK 778823-5月-87270020
EMPNO ENAME EMPJOB MGR HIREDATE SAL COMM DEPTNO
-----------------------------------------------------------------------------------
7900 JAMES CLERK 769803-12月-81255030
7902 FORD ANALYST 756603-12月-81460020
7934 MILLER CLERK 778223-1月-82290010
已选择14行。
四 代码
--给员工职位涨工资
set serveroutput on
declare
--定义一个光标代表给哪些员工涨工资
cursor cemp isselect empno,empjob from emp;
--为光标定义对应的变量
pempno emp.empno%type;
pjob emp.empjob%type;
begin
--打开光标
open cemp;
loop
--取一个员工
fetch cemp into pempno,pjob;
exitwhen cemp%notfound;
--判断员工职位
if pjob ='PRESIDENT'then update emp set sal =sal +1000where empno = pempno;
elsif pjob ='MANAGER'then update emp set sal =sal +800where empno = pempno;
else update emp set sal =sal +400where empno = pempno;
endif;
end loop;
--关闭光标
close cemp;
--对于oracle,默认的事务隔离级别是read committed
--事务ACID
commit;
dbms_output.put_line('涨工资完成');
end;
/
五 涨工资后数据
SQL>select*from emp;
EMPNO ENAME EMPJOB MGR HIREDATE SAL COMM DEPTNO
-----------------------------------------------------------------------------------
7369 SMITH CLERK 790217-12月-80280020
7499 ALLEN SALESMAN 769820-2月-81360030030
7521 WARD SALESMAN 769822-2月-81325050030
7566 JONES MANAGER 783902-4月-81697520
7654 MARTIN SALESMAN 769828-9月-813250140030
7698 BLAKE MANAGER 783901-5月-81685030
7782 CLARK MANAGER 783909-6月-81645010
7788 SCOTT ANALYST 756619-4月-87500020
7839 KING PRESIDENT 17-11月-811000010
7844 TURNER SALESMAN 769808-9月-813500030
7876 ADAMS CLERK 778823-5月-87310020
EMPNO ENAME EMPJOB MGR HIREDATE SAL COMM DEPTNO
-----------------------------------------------------------------------------------
7900 JAMES CLERK 769803-12月-81295030
7902 FORD ANALYST 756603-12月-81500020
7934 MILLER CLERK 778223-1月-82330010
已选择14行。
相关推荐
在console下,用VC实现的光标移动控制,用到win api函数。有了这个,就可以很方便的在console下写ui程序了。 其中实现有: /* 将光标移到指定位置*/ void JR_SetCursor(int x, int y); /* 将光标移到左上角 */ void...
vc 实现 限定光标在某个特定的位置
通过js实现table,text上下左右移动光标并同时选择text内容
鼠标汉字光标块的实现 鼠标汉字光标块的实现 鼠标汉字光标块的实现
可以用汇编程序实现按光标键画出横向竖向形状,可以连续,可以断开,可以抹除
C++五子棋小程序,支持选择先手方、光标移动下棋、评分算法找最佳位置
显示动画光标(C#源代码编写)显示动画光标,当运行程序时,光标将变成动画光标 VisualStudio2008创建[DllImport("user32")] private static extern IntPtr SetCursor(IntPtr hCursor); [DllImport("user32")] ...
该工具用于跟踪光标的实时坐标, 原理是安装全局鼠标钩子, 对光标的坐标进程实时监控
1.如何设置光标?(Visual C++编程 源代码)1.如何设置光标1.如何设置光标?(Visual C++编程 源代码)?(Visual C++编程 源代码)1.如何设置光标?(Visual C++编程 源代码)1.如何设置光标?(Visual C++编程 源...
一款使用的记事本软件实现由光标处显示行和列以及统计字数等功能
VC 光标隐藏功能的实现,把鼠标的光标隐藏掉,看不到光标,可用到一些不需要显示鼠标光标的地方。 注:测试时候要小心,隐藏鼠标后不会再显示鼠标,找不到鼠标了,需要重启电脑。
vue项目中在可编辑div光标位置插入内容 html: ($event, draggable='true' v-for=(item, key=index click=dropRelease($event,> {{item.labelName}} <div cont
您可以轻易转换您收藏的图像为光标,或转换光标为图像。AniFX 让您可以更改 EXE 文件里的光标。 转换您的 GIF 文件为动画光标,反之亦可。使用 AniFX 您可以从其它文件解压光标,包括 Windows Vista 和 Macintosh ...
电信设备-实现光标控制的移动终端及其实现光标控制的方法.zip
光标自用光标自用光标自用光标自用光标自用
\玻璃光标.exe\玻璃光标.exe\玻璃光标.exe
随意知道光标点的颜色!同时提供代码! 作为小工具!
C#实现回车光标自动跳到下一个控件的几种方法
在textarea光标处插入文本
vb.net轻松实现鼠标自定义光标 只需三行代码 格式为vb.net2008的.vb代码 如打不开可用记事本直接打开