程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle游標的打開與關閉

Oracle游標的打開與關閉

編輯:Oracle數據庫基礎

以下的內容是對Oracle游標的介紹。以Oracle顯示游標為主,本文講述了如何打開Oracle游標,以及想關的實際操作,如果你對其相關的實際操作有興趣了解的話,以下的文章將會給你提供相關的知識。

打開Oracle游標

使用游標中的值之前應該首先dewengz打開游標,打開游標初始化查詢處理。打開游標的語法是:

  1. OPEN cursor_name  

cursor_name是在聲明部分定義的游標名。

例:

  1. OPEN C_EMP;  

關閉Oracle游標

語法:

  1. CLOSE cursor_name  

例:

  1. CLOSE C_EMP;  

關閉Oracle游標

從游標得到一行數據使用FETCH命令。每一次提取數據後,游標都指向結果集的下一行。語法如下:

  1. FETCH cursor_name INTO variable[,variable,...]  

對於SELECT定義的Oracle游標的每一列,FETCH變量列表都應該有一個變量與之相對應,變量的類型也要相同。

例:

  1. SET SERVERIUTPUT ON  
  2. DECLARE  
  3. v_ename EMP.ENAME%TYPE;  
  4. v_salary EMP.SALARY%TYPE;  
  5. CURSOR c_emp IS SELECT ename,salary FROM emp;  
  6. BEGIN  
  7. OPEN c_emp;  
  8. FETCH c_emp INTO v_ename,v_salary;  
  9. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  10. ||'is'|| v_salary);  
  11. FETCH c_emp INTO v_ename,v_salary;  
  12. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  13. ||'is'|| v_salary);  
  14. FETCH c_emp INTO v_ename,v_salary;  
  15. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  16. ||'is'|| v_salary);  
  17. CLOSE c_emp;  
  18. END  

這段代碼無疑是非常麻煩的,如果有多行返回結果,可以使用循環並用Oracle游標屬性為結束循環的條件,以這種方式提取數據,程序的可讀性和簡潔性都大為提高,下面我們使用循環重新寫上面的程序:

  1. SET SERVERIUTPUT ON  
  2. DECLARE  
  3. v_ename EMP.ENAME%TYPE;  
  4. v_salary EMP.SALARY%TYPE;  
  5. CURSOR c_emp IS SELECT ename,salary FROM emp;  
  6. BEGIN  
  7. OPEN c_emp;  
  8. LOOP  
  9. FETCH c_emp INTO v_ename,v_salary;  
  10. EXIT WHEN c_emp%NOTFOUND;  
  11. DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename  
  12. ||'is'|| v_salary);  
  13. END  

上述的相關內容就是對Oracle游標的具體操作的描述,希望會給你帶來一些幫助在此方面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved