| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 培训 >> 认证考核 >> Oracle认证 >> 正文 用户登录 新用户注册
Oracle游标使用大全一           ★★★ 【字体:
Oracle学习手册:Oracle游标使用大全一
作者:佚名 文章来源:本站原创 点击数: 更新时间:2008-8-5

 

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

上一页  [1] [2] 

责任编辑:章新艳  联系方式  Email:章新艳
电话:51228163
  • 上一篇培训:

  • 下一篇培训:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关培训
    Oracle10g数据库的创建
    ORACLE常见问题诊断方法
    优化调整Oracle8i数据库系统
    将Oracle汉字转换为拼音
    Ruby脚本调用Oracle存储
    linux学习与用命令详解
    Oracle的经验技巧集锦
    介绍了Oracle常用数据字典
    Oracle游标使用大全二
    Oracle DBA数据库试题精选
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号