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

数据库 Oracle
以下的文章主要是对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

【编辑推荐】

  1. Oracle In-Memory Undo特性浅谈
  2. Oracle DRCP与PHP的不同之处
  3. Oracle 语句的优化规则中的相关项目
  4. Oracle sql 性能如何进行调整
  5. Oracle sql 性能的优化调整的2大步骤
责任编辑:佚名 来源: programbbs
相关推荐

2010-04-23 14:08:11

Oracle数据类型

2010-11-16 16:16:42

Oracle创建用户

2010-11-04 11:45:10

Oracle DECO

2010-10-25 17:00:40

Oracle deco

2010-04-07 09:31:02

Oracle数据库

2010-10-25 17:17:50

Oracle日期转换函

2010-11-16 15:40:21

oracle游标

2010-03-31 18:27:14

Oracle培训

2010-04-16 11:39:56

Oracle存储过程

2011-09-02 10:37:15

Oraclesqlload用法

2010-10-29 10:22:21

Oracle表空间

2010-04-08 09:27:44

Oracle 安装脚本

2010-04-21 14:45:39

Oracle数据库

2010-04-20 12:09:31

Oracle数据库

2010-04-07 16:02:29

Oracle性能

2010-03-25 14:27:52

Python语法

2010-03-18 09:28:14

Oracle数据库迁移

2010-10-25 15:46:56

Oracle TRIM

2010-11-16 16:23:04

Oracle修改用户

2010-10-28 16:46:23

查询Oracle数据库
点赞
收藏

51CTO技术栈公众号