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

Oracle游標提取相關的數據的語法介紹

編輯:Oracle數據庫基礎

本文主要介紹的是Oracle游標提取相關的數據的實際操作方案,首先我們要從Oracle游標中得到一行相關的數據,我個人提議你使用FETCH命令。當每一次提取數據後,Oracle游標都指向結果集的下一行。語法如下:

  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