如何打開和關閉Oracle遊標

以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);