Oracle游標(biāo)的打開與關(guān)閉
以下的內(nèi)容是對(duì)Oracle游標(biāo)的介紹。以O(shè)racle顯示游標(biāo)為主,本文講述了如何打開Oracle游標(biāo),以及想關(guān)的實(shí)際操作,如果你對(duì)其相關(guān)的實(shí)際操作有興趣了解的話,以下的文章將會(huì)給你提供相關(guān)的知識(shí)。
打開Oracle游標(biāo)
使用游標(biāo)中的值之前應(yīng)該首先dewengz打開游標(biāo),打開游標(biāo)初始化查詢處理。打開游標(biāo)的語法是:
- OPEN cursor_name
cursor_name是在聲明部分定義的游標(biāo)名。
例:
- OPEN C_EMP;
關(guān)閉Oracle游標(biāo)
語法:
- CLOSE cursor_name
例:
- CLOSE C_EMP;
關(guān)閉Oracle游標(biāo)
從游標(biāo)得到一行數(shù)據(jù)使用FETCH命令。每一次提取數(shù)據(jù)后,游標(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ù),程序的可讀性和簡(jiǎ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
上述的相關(guān)內(nèi)容就是對(duì)Oracle游標(biāo)的具體操作的描述,希望會(huì)給你帶來一些幫助在此方面。
文章出自: http://www.programbbs.com/doc/class10-3.htm
【編輯推薦】