如何開啟和關閉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);