Oracle 中遊標使用執行個體__Oracle

來源:互聯網
上載者:User

一、遊標簡介:

    遊標是PL&SQL中的一種控制結構。可以分為顯式遊標和隱式遊標。pl&sql會為每一條select語句建立隱式遊標。但是當我們需要處理多條資料時,我們就需要建立顯式遊標。注意:遊標不是模式對象。

 

二、遊標的幾種常見屬性:

1、%FOUND

--判斷遊標中是否還有資料,若有,返回true,否則,返回false。

2、%NOTFOUND

--與%FOUND 相反

3、%ISOPEN

--判斷遊標是否為開啟狀態

4、%ROWCOUNT

--記錄已從遊標中取出的記錄數

 

三、遊標應用執行個體:

 

1、%FOUND屬性的使用

DECLARE
CURSOR mycur IS
SELECT * FROM student;
myrecord student%ROWTYPE;
BEGIN
OPEN mycur;
FETCH mycur INTO myrecord;
WHILE mycur%FOUND LOOP
DBMS_OUTPUT.PUT_LINE(myrecord.stuno||','||myrecord.stuname);
FETCH mycur INTO myrecord;
END LOOP;
CLOSE mycur;
END;

 

2、%NOTFOUND屬性的使用:

DECLARE
CURSOR cur_para(id varchar2) IS
SELECT stuname FROM student WHERE stuno=111;
t_name student.stuname%TYPE;
BEGIN
OPEN cur_para(111);
LOOP
FETCH cur_para INTO t_name;
EXIT WHEN cur_para%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(t_name);
END LOOP;
CLOSE cur_para;
END;

 

3、for迴圈中遊標的特殊使用:


SQL> DECLARE
  2  CURSOR cur_para(id varchar2) IS
  3  SELECT stuname FROM student WHERE stuno=id;
  4  BEGIN
  5  DBMS_OUTPUT.PUT_LINE('*****');
  6  FOR cur IN cur_para('111') LOOP
  7  DBMS_OUTPUT.PUT_LINE(cur.stuname);
  8  END LOOP;
  9  END;

 

4、%ISOPEN屬性的使用:

SQL> DECLARE
  2  t_name student.stuname%TYPE;
  3  CURSOR cur(id varchar2) IS
  4  SELECT stuname FROM student WHERE stuno=id;
  5  BEGIN
  6  IF cur%ISOPEN THEN
  7  DBMS_OUTPUT.PUT_LINE('THE cur has been opened');
  8  ELSE
  9  OPEN cur('111');
 10  END IF;
 11  FETCH cur INTO t_name;
 12  CLOSE cur;
 13  DBMS_OUTPUT.PUT_LINE(t_name);
 14  END;

 

5、%ROWCOUNT屬性的使用:

SQL> DECLARE
  2  t_name VARCHAR2(10);
  3  CURSOR mycur IS
  4  SELECT stuname FROM student;
  5  BEGIN
  6  OPEN mycur;
  7  LOOP
  8  EXIT WHEN mycur%NOTFOUND OR mycur%NOTFOUND IS NULL;
  9  DBMS_OUTPUT.PUT_LINE('*****ROWCOUNT****'||mycur%ROWCOUNT);
 10  END LOOP;
 11  CLOSE mycur;
 12  END;

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.