Oracle游标的打开与关闭

数据库 Oracle
本文主要介绍的是如何打开Oracle游标,如何关闭Oracle游标,以及关闭Oracle游标的实际操作步骤的介绍,以下就是正文的描述。

以下的内容是对Oracle游标的介绍。以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及想关的实际操作,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会给你提供相关的知识。

打开Oracle游标

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

 

  1. OPEN cursor_name  

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

例:

 

  1. OPEN C_EMP;  

关闭Oracle游标

语法:

 

  1. CLOSE cursor_name  

例:

 

  1. CLOSE C_EMP;  

  关闭Oracle游标

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

 

  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 语句的优化规则中的相关项目
  2. Oracle实例如何创建?
  3. Oracle sql 性能如何进行调整
  4. Oracle管理员用户是什么?
  5. Oracle In-Memory Undo特性浅谈
责任编辑:佚名 来源: programbbs
相关推荐

2010-04-21 15:02:50

Oracle使用游标

2010-04-21 15:52:45

Oracle游标

2010-05-07 12:07:08

Oracle 多层游标

2010-05-06 11:02:26

Oracle游标

2022-05-11 15:06:02

MySQL游标SQL

2010-07-26 10:59:59

SQL Server游

2011-07-29 10:36:43

游标Oracle数据库

2010-05-26 16:41:09

MySQL 游标

2010-09-08 09:11:42

SQL游标语法

2010-05-31 17:06:35

MySQL游标

2010-09-10 16:20:10

SQL函数

2010-11-16 15:40:21

oracle游标

2010-07-14 15:32:28

SQL Server

2010-07-01 14:36:34

SQL Server动

2010-11-16 15:11:52

Oracle隐式游标

2010-11-16 15:23:28

Oracle游标

2010-07-26 11:27:43

SQL Server打

2010-10-09 16:41:54

MYSQL存储过程

2010-08-31 14:33:46

DB2游标

2010-04-02 09:07:26

Oracle sqlp
点赞
收藏

51CTO技术栈公众号