日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle中通过游标实现查询

發布時間:2024/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle中通过游标实现查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.通過提取數據

declare
v_result sys_refcursor;
v_id int;
v_name varchar2(20);


begin
open v_result for select empno,ename from emp;

loop
fetch v_result into v_id,v_name;
exit when v_result%notfound;
dbms_output.put_line('列id的值:'||to_char(v_id));

dbms_output.put_line('列name的值:'||v_name);
end loop;


close v_result;


exception
? when others then
??? dbms_output.put_line(sqlerrm);
end;

2.通過for循環

??? DECLARE ?
?? ?? CURSOR emp_cursor IS?? ?
? SELECT empno, ename FROM emp;? ?
?? ?BEGIN ?
?? ?FOR Emp_record IN emp_cursor LOOP???? ?
?? ???? DBMS_OUTPUT.PUT_LINE(Emp_record.empno|| Emp_record.ename);? ?
?? ???? END LOOP;? ?
?? ???? END; ?
3.另一種形式的for循環

BEGIN??

FOR?re?IN?(SELECT?ename?FROM?EMP)??LOOP ??

??DBMS_OUTPUT.PUT_LINE(re.ename) ??

END?LOOP; ??

END;??

?

4.游標的屬性

?

?

  • %ROWCOUNT???整型??獲得FETCH語句返回的數據行數 ??
  • %FOUND??布爾型?最近的FETCH語句返回一行數據則為真,否則為假 ??
  • %NOTFOUND???布爾型?與%FOUND屬性返回值相反 ??
  • %ISOPEN?布爾型?游標已經打開時值為真,否則為假??
  • ?? declare
    ?? names varchar2(20);
    ?? cursor emp_cursor is
    ?? select ename from emp;
    ?? begin
    ?? open emp_cursor;
    ?? if emp_cursor%isopen then
    ?? loop
    ?? fetch emp_cursor into names;
    ?? exit when emp_cursor%notfound;
    ??? DBMS_OUTPUT.PUT_LINE(emp_cursor%ROWCOUNT||names);
    ?? end loop;
    ?? else
    ?? DBMS_OUTPUT.PUT_LINE('沒有相關信息');
    ?? end if;
    ?? close emp_cursor;
    ?? end;

    ?

    5.帶參數的游標

    ????????DECLARE??

    ?????????? V_empno?NUMBER(5); ??

    ?????????? V_ename?VARCHAR2(10); ??

    ???????? CURSOR??emp_cursor(p_deptno?NUMBER,?????p_job?VARCHAR2)?IS??

    ????????????SELECT??empno,?ename?FROM?emp ??

    ???????? WHERE???deptno?=?p_deptno?AND?job?=?p_job; ??

    BEGIN??

    ??? OPEN?emp_cursor(10,?'CLERK'); ??

    ?? LOOP ??

    ??? FETCH?emp_cursor?INTO?v_empno,v_ename; ??

    ??? EXIT?WHEN?emp_cursor%NOTFOUND; ??

    ??? DBMS_OUTPUT.PUT_LINE(v_empno||','||v_ename); ??

    ??? END?LOOP; ??

    ?? END;??

    ?

    ?


    ??

    ?

    ?

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/yuloe2012/archive/2012/12/11/2812947.html

    總結

    以上是生活随笔為你收集整理的oracle中通过游标实现查询的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。