oracle資料庫PL/SQL之遊標

來源:互聯網
上載者:User
三)遊標1.遊標的基本原理對資料結果進行逐條處理。執行效率低、佔用資源。2.遊標屬性%FOUND%ISOPEN是否開啟%NOTFOUND%ROWCOUNT遊標每抽取一行增加1,記錄遊標抽取過的行數。參數化遊標1)DECLARECURSOR cur_para<id varchar2> ISSELECT books_name FROM books WHERE books_id=id;t_name books.books_name%TYPE;BEGINOPEN cur_para<'0001'>;LOOPFETCH cur_para INTO t_name;EXIT WHEN cur_para%NOTFOUND;DBMS_OUTPUT.PUT_LINE<t_name>;END LOOP;CLOSE cur_para;END;/2)ACCEPT my_tid prompt 'Please input the tid:'DECLARE    CURSOR teacher_cur(CURSOR_id NUMBER)    IS    SELECT TNAME,TITLE,SEX    FROM    TEACHERS    WHERE    TID=CURRSOR_id;BEGIN    OPEN    teacher_cur(my_tid);    LOOP        FETCH teacher_cur INTO teacher_name,teacher_title,teacher_sex;        EXIT WHEN teacher_cur%NOTFOUND;        ...    END LOOP;    CLOSE teacher_cur;END;3.顯式遊標使用過程:1)聲明CURSOR<遊標名> IS SELECT<語句>;2)開啟OPEN <遊標名>3)提取FETCH <遊標名> INTO <變數列表>;FETCH <遊標名> INTO PL/SQL記錄;4)判斷遊標是否為空白,空轉入第5)非空轉入3)5)關閉CLOSE <遊標名>4.隱式遊標1)SELECT 只能返回一條記錄BEGIN    SELECT TID,TNAME,TITLE,SEX INTO teacher_id,teacher_name,teacher_title,teacher_sex FROM TEACHERS    WHERE    TID=113;END;2)SELECT可以返回多條記錄BEGINFOR cur IN(SELECT name FROM deptment) LOOPDBMS_OUTPUT.PUT_LINE<cur.name>;END LOOP;END;/5.遊標變數1)聲名TYPE <類型名>    IS REF CURSORRETURN <傳回型別>;2)開啟遊標變數OPEN <遊標變數> FOR <SELECT語句>3)關閉遊標變數CLOSE6.使用執行個體1)DECLARECURSOR mycur ISSELECT * FROM books;myrecord books%ROWTYPE;BEGINOPEN mycur;FETCH mycur INTO myrecord;WHILE mycur%FOUND LOOPDBMS_OUTPUT.PUT_LINE(myrecord.books_id||','||myrecord.books_name);FETCH mycur INTO myrecord;END LOOP;CLOSE mycur;END;2)通過遊標修改資料DECLARECURSOR cur ISSELECT name FROM deptment FOR UPDATE;text varchar2<10>;BEGINOPEN cur;FETCH cur INTO text;WHILE cur%FOUND LOOPUPDATE deptment SET name=name||'_t' WHERE CURRENT OF cur;FETCH cur INTO text;END LOOP;CLOSE cur;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.