以下的內容是對Oracle游標的介紹。以Oracle顯示游標為主,本文講述了如何打開Oracle游標,以及想關的實際操作,如果你對其相關的實際操作有興趣了解的話,以下的文章將會給你提供相關的知識。
打開Oracle游標
使用游標中的值之前應該首先dewengz打開游標,打開游標初始化查詢處理。打開游標的語法是:
- OPEN cursor_name
cursor_name是在聲明部分定義的游標名。
例:
- OPEN C_EMP;
關閉Oracle游標
語法:
- CLOSE cursor_name
例:
- CLOSE C_EMP;
關閉Oracle游標
從游標得到一行數據使用FETCH命令。每一次提取數據後,游標都指向結果集的下一行。語法如下:
- 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
上述的相關內容就是對Oracle游標的具體操作的描述,希望會給你帶來一些幫助在此方面。