如何打开和关闭Oracle游标
以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及相关的实际操作,下面和小编一起来看看吧!
打开Oracle游标
使用游标中的值之前应该首先dewengz打开游标,打开游标初始化查询处理。打开游标的`语法是:
cursor_name
cursor_name是在声明部分定义的游标名。
例:
C_EMP;
关闭Oracle游标
语法:
E cursor_name
例:
E C_EMP;
关闭Oracle游标
从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:
H cursor_name INTO variable[,variable,...]
对于SELECT定义的Oracle游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。
例:
SERVERIUTPUT ON
ARE
3.v_ename E%TYPE;
4.v_salary RY%TYPE;
OR c_emp IS SELECT ename,salary FROM emp;
N
c_emp;
H c_emp INTO v_ename,v_salary;
__LINE('Salary of Employee'|| v_ename
10.||'is'|| v_salary);
H c_emp INTO v_ename,v_salary;
__LINE('Salary of Employee'|| v_ename
13.||'is'|| v_salary);
H c_emp INTO v_ename,v_salary;
__LINE('Salary of Employee'|| v_ename
16.||'is'|| v_salary);
E c_emp;
这段代码无疑是非常麻烦的,如果有多行返回结果,可以使用循环并用Oracle游标属性为结束循环的条件,以这种方式提取数据,程序的可读性和简洁性都大为提高,下面我们使用循环重新写上面的程序:
SERVERIUTPUT ON
ARE
3.v_ename E%TYPE;
4.v_salary RY%TYPE;
OR c_emp IS SELECT ename,salary FROM emp;
N
c_emp;
H c_emp INTO v_ename,v_salary;
WHEN c_emp%NOTFOUND;
__LINE('Salary of Employee'|| v_ename
12.||'is'|| v_salary);