Oracle游标提取相关的数据的语法介绍
本文主要介绍的是Oracle游标提取相关的数据的实际操作方案 首先我们要从Oracle游标中得到一行相关的数据 我个人提议你使用FETCH命令 当每一次提取数据后 Oracle游标都指向结果集的下一行 语法如下
FETCH cursor_name INTO variable[ variable ]
对于SELECT定义的Oracle游标的每一列 FETCH变量列表都应该有一个变量与之相对应 变量的类型也要相同
例
SET SERVERIUTPUT ON
DECLARE
v_ename EMP ENAME%TYPE;
v_salary EMP SALARY%TYPE;
CURSOR c_emp IS SELECT ename salary FROM emp;
BEGIN
OPEN c_emp;
FETCH c_emp INTO v_ename v_salary;
DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename
|| is || v_salary);
FETCH c_emp INTO v_ename v_salary;
DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename
|| is || v_salary);
FETCH c_emp INTO v_ename v_salary;
DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename
|| is || v_salary);
CLOSE c_emp;
END
这段代码无疑是非常麻烦的 如果有多行返回结果 可以使用循环并用Oracle游标属性为结束循环的条件 以这种方式提取数据 程序的可读性和简洁性都大为提高 下面我们使用循环重新写上面的程序
SET SERVERIUTPUT ON
DECLARE
v_ename EMP ENAME%TYPE;
v_salary EMP SALARY%TYPE;
CURSOR c_emp IS SELECT ename salary FROM emp;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO v_ename v_salary;
EXIT WHEN c_emp%NOTFOUND;
DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename
|| is || v_salary);
END
lishixinzhi/Article/program/Oracle/201311/18889