RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
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


本文题目:Oracle游标提取相关的数据的语法介绍
文章起源:http://www.jxjierui.cn/article/dpicohh.html