401
…………………………………………………………Page 402……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
10 order by 2; 3 desc;
输出
NAME PAY_TYPE PAY_RATE EFF_DATE DUE
SANDRA SAMUELS HOURLY 12。50 01…JAN…97 No
ROBERT BOBAY HOURLY 11。50 15…MAY…96 YES
KEITH JONES HOURLY 10。00 31…OCT…96 YES
SUSAN WILLIAMS HOURLY 9。75 01…MAY…97 No
CHRISSY ZOES SALARY 50000。00 01…JAN…97 No
CLODE EVANS SALARY 42150。00 01…MAR…97 No
JOHN SMITH SALARY 35000。00 15…JUN…96 YES
KEVIN TROLLBERG SALARY 27500。00 15…JUN…96 YES
DUE 列的内容是确定每一个人是否有增加工资的资格 下边是 PL/SQL 的脚本
输入
set serveroutput on
BEGIN
DECLARE
UnknownPayType exception;
cursor pay_cursor is
select name; pay_type; pay_rate; eff_date;
sysdate; rowid
from pay_table;
IndRec pay_cursor%ROWTYPE;
cOldDate date;
fNewPay number(8;2);
BEGIN
open pay_cursor;
loop
fetch pay_cursor into IndRec;
exit when pay_cursor%NOTFOUND;
cOldDate := sysdate 180;
if (IndRec。pay_type = "SALARY") then
402
…………………………………………………………Page 403……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
fNewPay := IndRec。pay_rate * 1。05;
elsif (IndRec。pay_type = "HOURLY") then
fNewPay := IndRec。pay_rate * 1。04;
else
raise UnknownPayType;
end if;
if (IndRec。eff_date 《 cOldDate) then
update pay_table
set pay_rate = fNewPay;
prev_pay = IndRec。pay_rate;
eff_date = IndRec。sysdate
where rowid = IndRec。rowid;
mit;
end if;
end loop;
close pay_cursor;
EXCEPTION
when UnknownPayType then
dbms_output。put_line("=======================");
dbms_output。put_line("ERROR: Aborting program。");
dbms_output。put_line("Unknown Pay Type for Name");
when others then
dbms_output。put_line("ERROR During Processing。 See the DBA。");
END;
END;
/
你是否已经决定了要给这四个雇员增加工资 在上边的 SELECT 语句中有四个人有
YES 标记 为什么不呢 让我们给所有的这四个人加薪吧 你可以通过运行名字叫
block2。sql 的脚本来自动为这四个人进行合理的加薪
输入/输出
403
…………………………………………………………Page 404……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
SQL》 @block2
Input truncated to 1 characters
PL/SQL procedure successfully pleted。
你可以作一个快速的检查也确定对于每个人的薪金的增加比率是多少
输入
SQL》 select * from pay_table order by pay_type; pay_rate desc
输出
NAME PAY_TYPE PAY_RATE EFF_DATE PREV_PAY
SANDRA SAMUELS HOURLY 12。50 01…JAN…97
ROBERT BOBAY HOURLY 11。96 20…MAY…97 11。5
KEITH JONES HOURLY 10。40 20…MAY…97 10
SUSAN WILLIAMS HOURLY 9。75 01…MAY…97
CHRISSY ZOES SALARY 50000。00 01…JAN…97
CLODE EVANS SALARY 42150。00 01…MAR…97
JOHN SMITH SALARY 36750。00 20…MAY…97 35000
KEVIN TROLLBERG SALARY 28875。00 20…MAY…97 27500
分析
四个雇员的薪金已经增加了 如果将现在的输出和原来的 SELECT 的输出做比较的话
你会发现相应的改变 当前的薪金率的变化反映和薪金的增加 原有的薪金率被插入到了
PREV_PAY 列中 而有效日期则被更新为当前的日期 没有符合资格的人的情况则没有任
何变化
请等一下 我们没有看到定义的异常工作的机会 你可以向 PAY_TABLE 表中插入一
个不合法的记录来对异常部分进行检测
输入
SQL》 insert into pay_table values
2 ("JEFF JENNINGS";"WEEKLY";71。50;"01…JAN…97";NULL);
输出
1 row created。
输入/输出
SQL》 @block2
404
…………………………………………………………Page 405……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
小说推荐
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 最新章:第214章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 最新章:第309章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- 电子电路大全(PDF格式)
- -Page 1-电力生产人员技能培训电路基础部分电路基础部分电电路路基基础础部部分分-Page 2-一、电路的基本概念和基本定律-Page 3-考试点1o 1、掌握电阻、独立电压源、独立电流源、11受控源、电容、电感、耦合电感、理想变压器诸元件的定义、性质2o 2、掌握电流、电压参考方向的概念223
- 最新章:第353章