Oracle游標提取相關的數據的語法介紹
本文主要介紹的是Oracle游標提取相關的數據的實際操作方案,首先我們要從Oracle游標中得到一行相關的數據,我個人提議你使用FETCH命令。當每一次提取數據后,Oracle游標都指向結果集的下一行。語法如下:
- 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
 
這段代碼無疑是非常麻煩的,如果有多行返回結果,可以使用循環(huán)并用Oracle游標屬性為結束循環(huán)的條件,以這種方式提取數據,程序的可讀性和簡潔性都大為提高,下面我們使用循環(huán)重新寫上面的程序:
- 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游標提取數據的介紹,望你能有所收獲。
文章出自: http://www.programbbs.com/doc/class10-3.htm
【編輯推薦】















 
 
 
 
 
 
 