Oracle游標(biāo)提取相關(guān)的數(shù)據(jù)的語法介紹
本文主要介紹的是Oracle游標(biāo)提取相關(guān)的數(shù)據(jù)的實(shí)際操作方案,首先我們要從Oracle游標(biāo)中得到一行相關(guān)的數(shù)據(jù),我個(gè)人提議你使用FETCH命令。當(dāng)每一次提取數(shù)據(jù)后,Oracle游標(biāo)都指向結(jié)果集的下一行。語法如下:
- FETCH cursor_name INTO variable[,variable,...]
對(duì)于SELECT定義的Oracle游標(biāo)的每一列,F(xiàn)ETCH變量列表都應(yīng)該有一個(gè)變量與之相對(duì)應(yīng),變量的類型也要相同。
例:
- 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
這段代碼無疑是非常麻煩的,如果有多行返回結(jié)果,可以使用循環(huán)并用Oracle游標(biāo)屬性為結(jié)束循環(huán)的條件,以這種方式提取數(shù)據(jù),程序的可讀性和簡潔性都大為提高,下面我們使用循環(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
以上的相關(guān)內(nèi)容就是對(duì)Oracle游標(biāo)提取數(shù)據(jù)的介紹,望你能有所收獲。
文章出自: http://www.programbbs.com/doc/class10-3.htm
【編輯推薦】