交友约会| 杂志期刊| 小说| 论坛| 电影下载| 两性知识| 电脑知识| 汽车| 旅游| 收藏

快速掌握Oracle数据库游标的使用方法

来源:赛迪网 作者: 出处:综艺读书 2007-06-26 进入讨论组
关 键 词:数据库  设计  存储过程  os  oracle  
下一页 1 2 3 4 

显式游标

当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用select into语句。PL/SQL管理隐式游标,当查询开始时隐式游标打开,查询结束时隐式游标自动关闭。显式游标在PL/SQL块的声明部分声明,在执行部分或异常处理部分打开,取出数据,关闭。

使用游标

这里要做一个声明,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标。要在程序中使用游标,必须首先声明游标。

声明游标

语法:


CURSOR cursor_name IS select_statement;

在PL/SQL中游标名是一个未声明变量,不能给游标名赋值或用于表达式中。

例:

DELCARE 
CURSOR C_EMP IS SELECT empno,ename,salary 
FROM emp 
WHERE salary>2000 
ORDER BY ename; 
........ 
      BEGIN

在游标定义中SELECT语句中不一定非要表可以是视图,也可以从多个表或视图中选择的列,甚至可以使用*来选择所有的列 。

打开游标

使用游标中的值之前应该首先打开游标,打开游标初始化查询处理。打开游标的语法是:

OPEN cursor_name

cursor_name是在声明部分定义的游标名。

例:

OPEN C_EMP; 关闭游标。

语法:

CLOSE cursor_name

例:

CLOSE C_EMP; 从游标提取数据。从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:

FETCH cursor_name INTO variable[,variable,...]

对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。

例:

SET SERVERIUTPUT ON 
DECLARE 
v_ename EMP.ENAME%TYPE; 
v_salary EMP.SALARY%TYPE; 
CURSOR c_emp IS SELECT ename,salary FROM emp; 
BEGIN 
OPEN c_emp; 
FETCH c_emp INTO v_ename,v_salary; 
DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename ||'is'|| v_salary); 
FETCH c_emp INTO v_ename,v_salary; 
DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename ||'is'|| v_salary); 
FETCH c_emp INTO v_ename,v_salary; 
DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename ||'is'|| v_salary); 
CLOSE c_emp; 
      END

这段代码无疑是非常麻烦的,如果有多行返回结果,可以使用循环并用游标属性为结束循环的条件,以这种方式提取数据,程序的可读性和简洁性都大为提高,下面我们使用循环重新写上面的程序:

SET SERVERIUTPUT ON 
DECLARE 
v_ename EMP.ENAME%TYPE; 
v_salary EMP.SALARY%TYPE; 
CURSOR c_emp IS SELECT ename,salary FROM emp; 
BEGIN 
OPEN c_emp; 
LOOP 
FETCH c_emp INTO v_ename,v_salary; 
EXIT WHEN c_emp%NOTFOUND; 
DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename ||'is'|| v_salary); 
      END

  更多文章 更多内容请看Linux数据库宝典  Oracle 10g基础应用  城域网专题专题,或进入讨论组讨论。

下一页 1 2 3 4 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
综艺读书宗旨
相关专题
·数据库专栏 (4452篇文章)
·数据库处理专题 (7194篇文章)
·城域网专题 (6645篇文章)
·数据库安全技术专题 (10947篇文章)
·数据库安装与卸载 (8906篇文章)
·Oracle 10g基础应用 (4022篇文章)
·Linux数据库宝典 (11116篇文章)
·数据库相关文章 (4452篇文章)
·数据库基本处理 (253篇文章)
·数据库体系架构 (952篇文章)
热点标签: 数据库  设计  存储过程  os  oracle  
最新技术文档
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
Web 全站
综艺电脑频道编辑信箱  告诉我们您想看的专题或文章

友情互链 | 收藏本站 | 联系我们 | 在线留言 | 京ICP备08008424号|