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