龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle游标提取相关的数据的语法介绍

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
本文主要介绍的是 Oracle 游标提取相关的数据的实际操作方案,首先我们要从Oracle游标中得到一行相关的数据,我个人提议你使用FETCH命令。当每一次提取数据后,Oracle游标都指向结果集

本文主要介绍的是Oracle游标提取相关的数据的实际操作方案,首先我们要从Oracle游标中得到一行相关的数据,我个人提议你使用FETCH命令。当每一次提取数据后,Oracle游标都指向结果集的下一行。语法如下:

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

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

例:

  1. SET SERVERIUTPUT ON  
  2. DECLARE  
  3. v_ename EMP.ENAME%TYPE;  
  4. v_salary EMP.SALARY%TYPE;  
  5. CURSOR c_emp IS SELECT ename,salary FROM emp;  
  6. BEGIN  
  7. OPEN c_emp;  
  8. FETCH c_emp INTO v_ename,v_salary;  
  9. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  10. ||'is'|| v_salary);  
  11. FETCH c_emp INTO v_ename,v_salary;  
  12. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  13. ||'is'|| v_salary);  
  14. FETCH c_emp INTO v_ename,v_salary;  
  15. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  16. ||'is'|| v_salary);  
  17. CLOSE c_emp;  
  18. END  

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

  1. SET SERVERIUTPUT ON  
  2. DECLARE  
  3. v_ename EMP.ENAME%TYPE;  
  4. v_salary EMP.SALARY%TYPE;  
  5. CURSOR c_emp IS SELECT ename,salary FROM emp;  
  6. BEGIN  
  7. OPEN c_emp;  
  8. LOOP  
  9. FETCH c_emp INTO v_ename,v_salary;  
  10. EXIT WHEN c_emp%NOTFOUND;  
  11. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  12. ||'is'|| v_salary);  
  13. END  

以上的相关内容就是对Oracle游标提取数据的介绍,望你能有所收获。

文章出自: http://www.programbbs.com/doc/class10-3.htm

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接