statement2;
。
END
386
…………………………………………………………Page 387……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
FETCH
FETCH 可以从一个指针中取得变量的值 这里有两个使用 FETCH 的例子 一个是取
得一个集合变量 另外了个则取得特定的变量
INPUT
DECLARE
cursor employee_cursor is
select emp_id; emp_name from employees;
employee_record employee_cursor%ROWTYPE;
BEGIN
open employee_cursor;
loop
fetch employee_cursor into employee_record;
end loop;
close employee_cursor;
END
分析
上一个例子中将一个指针所指的行的数据赋给了一个名字叫 employee_record 的变量
它使用 LOOP 循环来移动指针 当然 这个块事实上没有做任何工作
DECLARE
cursor employee_cursor is
select emp_id; emp_name from employees;
id_num employees。emp_id%TYPE;
name employees。emp_name%TYPE;
BEGIN
open employee_cursor;
loop
fetch employee_cursor into id_num; name;
end loop;
close employee_cursor;
387
…………………………………………………………Page 388……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
END
分析
在这个例子中是把当前的指针所指的行的对应数据填入变量 id_num 和 name 中 这两
个变量是在 DECLARE 部分中定义的
CLOSE
如果你已经在一个块中结束了对指针的使用时 你应该将这个指针关闭 与你通常在
读完一本书以后要将书合上一样 你应该使用 CLOSE 命令来关闭指针
语法
BEGIN
open employee_cursor;
statement1;
statement2;
。
。 close employee_cursor;
END
分析
当关闭一个指针以后 查询的结果集就不复存在了 如果你想访问结果集中的数据你
必须重新打开指针才行
条件语句
现在我们得到了非常有用的东西来控制我们的 SQL 语句的运行 在 PL/SQL 中的条件
语句与大多数第三代编程语言是类似的
IF THEN
在大多数编程中 IF THEN 语句可能是得常用的语句了 它决定了对于特定的条件
应当执行哪一部分的操作 其结构如下
语法
388
…………………………………………………………Page 389……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
IF condition1 THEN
statement1;
END IF
如果你需要对这两种情况进行分别处理 那么你可以将语句形式写成下边的样子
语法
IF condition1 THEN
statement1
ELSE
statement2
END IF
如果你需要进行判断的条件多于两个 那么语句可以写成下边样子
语法
IF condition1 THEN
statement1
ELSIF condition2 THEN
statement2
ELSE
statement3
END IF
分析
在最后一个例子中 如果满足条件 1 那么就执行语句 1 如果满足条件 2 那么就会
执行语句 2 否则的话就会执行语句 3 条件语句也可以嵌于其他语句和 LOOP 循环中
LOOPS 循环
LOOPS 在 PL/SQL 的语句块中将不断地执行过程直到指定的条件满足为止 一共有三
种循环
LOOP 本身是一个无限的循环 它经常在指针中使用 如果你想终止这种循环 你必
须指定在什么时候退出 例如 在循环中翻阅指针的时候你可以指定当指针处于最后一行
的时候退出循环 见下例
389
…………………………………………………………Page 390……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
输入
BEGIN
open employee_cursor
LOOP
FETCH employee_cursor into employee_record
EXIT WHEN employee_cursor%NOTFOUND
statement1
END LOOP
close employee_cursor
END
%NOTFOUND 是指针的一种属性 它表明在当前指针中没有任何数据 在上一个例
子中如果指针没有发现数据就会退出循环 假如你在循环中忽略了这条语句 循环将会一
直进行下去
WHILE…LOOP 则是在当条定条件满足时执行特定的语句 而当条件不在满足时就会从
循环中退出转而执行下一条语句
输入
DECLARE
cursor payment_cursor is
select cust_id; payment; total_due from payment_table
cust_id payment_table。cust_id%TYPE
payment payment_table。payment%TYPE
total_due payment_table。total_due%TYPE
BEGIN
open payment_cursor
WHILE payment 《 total_due LOOP
FETCH payment_cursor into cust_id; payment; total_due
EXIT WHEN payment_cursor%NOTFOUND
insert into underpay_table
values (cust_id; "STILL OWES")
390
…………………………………………………………Page 391……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
END LOOP
close payment_cursor
分析
在上一个例子中使用了 WHILE…LOOP
小说推荐
- 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章