成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

什么是oracle游標(biāo)

在Oracle中,游標(biāo)是一種機(jī)制,是通過關(guān)鍵字CURSOR的來定義一組Oracle查詢出來的數(shù)據(jù)集,可以把查詢的數(shù)據(jù)集存儲在內(nèi)存當(dāng)中,然后通過游標(biāo)指向其中一條記錄,通過循環(huán)游標(biāo)達(dá)到循環(huán)數(shù)據(jù)集的目的。

什么是oracle游標(biāo)

本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。

在Oracle中,游標(biāo)(Cursors)是一種機(jī)制,可以通過該機(jī)制將名稱分配給SELECT語句并處理該SQL語句中的信息。

Oracle游標(biāo)是通過關(guān)鍵字CURSOR的來定義一組Oracle查詢出來的數(shù)據(jù)集,類似數(shù)組一樣,把查詢的數(shù)據(jù)集存儲在內(nèi)存當(dāng)中,然后通過游標(biāo)指向其中一條記錄,通過循環(huán)游標(biāo)達(dá)到循環(huán)數(shù)據(jù)集的目的。

游標(biāo)有什么作用?

①指定結(jié)果集中特定行的位置。

②基于當(dāng)前的結(jié)果集位置檢索一行或連續(xù)的幾行。

③在結(jié)果集的當(dāng)前位置修改行中的數(shù)據(jù)。

④對其他用戶所做的數(shù)據(jù)更改定義不同的敏感性級別。

⑤可以以編程的方式訪問數(shù)據(jù)庫。

Oracle游標(biāo)的類型?

1、靜態(tài)游標(biāo):結(jié)果集已經(jīng)確實(shí)(靜態(tài)定義)的游標(biāo)。分為隱式和顯示游標(biāo)

  • 隱式游標(biāo):所有DML語句為隱式游標(biāo),通過隱式游標(biāo)屬性可以獲取SQL語句信息。

  • 顯示游標(biāo):用戶顯示聲明的游標(biāo),即指定結(jié)果集。當(dāng)查詢返回結(jié)果超過一行時,就需要一個顯式游標(biāo)。

2、REF游標(biāo):動態(tài)關(guān)聯(lián)結(jié)果集的臨時對象。

Oracle游標(biāo)的狀態(tài)有哪些,怎么使用游標(biāo)屬性?

①游標(biāo)的狀態(tài)是通過屬性來表示。

  • %Found :Fetch語句(獲取記錄)執(zhí)行情況True or False。

  • %NotFound : 最后一條記錄是否提取出True or False。

  • %ISOpen : 游標(biāo)是否打開True or False。

  • %RowCount :游標(biāo)當(dāng)前提取的行數(shù) 。

②使用游標(biāo)的屬性。

例子:

/* conn scott/tiger */   Begin    Update emp Set  SAL = SAL + 0.1  Where JOB = 'CLERK';    If  SQL%Found  Then     DBMS_OUTPUT.PUT_LINE('已經(jīng)更新!');    Else     DBMS_OUTPUT.PUT_LINE('更新失敗!');    End  If;   End;

如何使用顯示游標(biāo),?如何遍歷循環(huán)游標(biāo)?

1、使用顯示游標(biāo)

  • 聲明游標(biāo):劃分存儲區(qū)域,注意此時并沒有執(zhí)行Select 語句。

CURSOR 游標(biāo)名( 參數(shù) 列表)   [返回值類型]   IS   Select 語句;
  • 打開游標(biāo):執(zhí)行Select 語句,獲得結(jié)果集存儲到游標(biāo)中,此時游標(biāo)指向結(jié)果集頭, 而不是第一條記錄。

 Open 游標(biāo)名( 參數(shù) 列表);
  • 獲取記錄:移動游標(biāo)取一條記錄

Fetch  游標(biāo)名InTo  臨時記錄或?qū)傩灶愋妥兞浚?/pre>
  • 關(guān)閉游標(biāo):將游標(biāo)放入緩沖池中,沒有完全釋放資源。可重新打開。

Close  游標(biāo)名;

2、遍歷循環(huán)游標(biāo)

  • For 循環(huán)游標(biāo)

循環(huán)游標(biāo)隱式打開游標(biāo),自動滾動獲取一條記錄,并自動創(chuàng)建臨時記錄類型變量存儲記錄。處理完后自動關(guān)閉游標(biāo)。

     For  變量名  In  游標(biāo)名       Loop       數(shù)據(jù)處理語句;      End Loop;
  • Loop循環(huán)游標(biāo)

     。。。     Loop      Fatch  游標(biāo)名InTo  臨時記錄或?qū)傩灶愋妥兞浚?     Exit  When   游標(biāo)名%NotFound;     End   Loop;      。。。

例子1:

/* conn scott/tiger */    Declare      Cursor myCur is select empno,ename,sal from emp;      vna varchar2(10);      vno number(4);      vsal number(7,2);   Begin      open myCur;      fetch myCur into vno,vna,vsal;      dbms_output.put_line(vno||'    '||vna||'    '||vsal);      close myCur;   End;   /

例子2:使用loop遍歷游標(biāo)。

 /* conn scott/tiger */   Declare      Cursor myCur is select ename,job,sal,empno from emp;      varE myCur%rowType;   Begin      if myCur%isopen = false then         open myCur;        dbms_output.put_line('Opening...');      end if;      loop         fetch myCur into varE;         exit when myCur%notfound;         dbms_output.put_line(myCur%rowCount||'    '||vare.empno||'    '||vare.ename||'    '||vare.sal);      end loop;      if myCur%isopen then         Close myCur;         dbms_output.put_line('Closing...');      end if;   End;   /

例子3:使用For循環(huán)遍歷游標(biāo),

  /* conn scott/tiger */   Declare      Cursor myCur is select * from emp;   Begin      for varA in myCur       loop          dbms_output.put_line(myCur%rowCount||'    '||varA.empno||'    '||varA.ename||'  '||varA.sal);       end loop;   End;   /

怎樣更新和刪除顯示游標(biāo)中的記錄?

①UPDATE或DELETE語句中的WHERE CURRENT OF子串專門處理要執(zhí)行UPDATE或DELETE操作的表中取出的最近的數(shù)據(jù)。

要使用這個方法,在聲明游標(biāo)時必須使用FOR UPDATE子串,當(dāng)對話使用FOR UPDATE子串打開一個游標(biāo)時,

所有返回集中的數(shù)據(jù)行都將處于行級(ROW-LEVEL)獨(dú)占式鎖定,其他對象只能查詢這些數(shù)據(jù)行,

不能進(jìn)行UPDATE、DELETE或SELECT…FOR UPDATE操作。

在多表查詢中,使用OF子句來鎖定特定的表,如果忽略了OF子句,那么所有表中選擇的數(shù)據(jù)行都將被鎖定。

如果這些數(shù)據(jù)行已經(jīng)被其他會話鎖定,那么正常情況下ORACLE將等待,直到數(shù)據(jù)行解鎖。

②使用更新或刪除:

⑴聲明更新或刪除顯示游標(biāo):

   Cursor 游標(biāo)名IS  SELECT 語句   For Update [ Of  更新列列名];    Cursor 游標(biāo)名IS  SELECT 語句   For Delete [ Of  更新列列名];

⑵使用顯示游標(biāo)當(dāng)前記錄來更新或刪除:

   Update  表名   SET   更新語句  Where   Current  Of   游標(biāo)名;    Delete  From  表名   Where   Current  Of   游標(biāo)名;

例子1:更新顯示游標(biāo)記錄

   /*conn scott/tiger*/    Declare      Cursor myCur is select job from emp for update;        vjob empa.job%type;        rsal empa.sal%type;     Begin        open myCur;        loop           fetch myCur into vjob;           exit when myCur%notFound;           case  (vjob)              when 'ANALYST' then  rsal := 0.1;             when  'CLERK' then  rsal := 0.2;              when  'MANAGER' then  rsal := 0.3;              else                rsal := 0.5;           end case;         update emp set sal = sal + rsal where current of myCur;        end loop;     End;     /

例子2:刪除顯示游標(biāo)記錄

    /*conn scott/tiger     Crate table  empa  Select * from scott.emp;     */     Declare       Cursor MyCursor  Select   JOB  From  empa  For  Update;       vSal   emp.Sal%TYPE;     Begin       Loop        Fetch  MyCursor  InTo  vSal;        Exit  When  MyCursor%NotFound;        If   vSal < 800 Then         Delete  From empa  Where  Cursor  Of   MyCursor;        End  If;         End    Loop;     End;/

什么是帶參數(shù)的顯示游標(biāo)?

1、與過程和函數(shù)相似,可以將參數(shù)傳遞給游標(biāo)并在查詢中使用。

參數(shù)只定義數(shù)據(jù)類型,沒有大小(所有Oracle中的形參只定義數(shù)據(jù)類型,不指定大小)。

與過程不同的是,游標(biāo)只能接受傳遞的值,而不能返回值。

  可以給參數(shù)設(shè)定一個缺省值,當(dāng)沒有參數(shù)值傳遞給游標(biāo)時,就使用缺省值。

游標(biāo)中定義的參數(shù)只是一個占位符,在別處引用該參數(shù)不一定可靠。

2、使用帶參數(shù)的顯示游標(biāo)

  • 聲明帶參數(shù)的顯示游標(biāo):

   CURSOR 游標(biāo)名  [(parameter[,parameter],...)]    IS   Select語句;

參數(shù)形式:

1,參數(shù)名 數(shù)據(jù)類型

2,參數(shù)名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值

例子:

    /*conn scott/tiger     Crate table  empa  Select * from scott.emp;     */     Declare       Cursor MyCursor(pSal  Number  Default   800)  Select   JOB  From  empa Where  SAL >  pSal ;       varA  MyCursor%ROWTYPE;     Begin       Loop        Fetch  MyCursor  InTo  varA;        Exit  When  MyCursor%NotFound;        DBMS_OUTPUT.PUT_LINE(MyCursor%RowCount||'    '||varA.empno||'    '||varA.ename||'  '||varA.sal);        End    Loop;     End;/

推薦教程:《Oracle教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
欧美老妇疯狂XXXXBBBB| 亚洲国产成人久久综合碰| 国产精品久久无码不卡| 欧美成人精品视频一区二区三区| A级毛片免费全部播放无码| 全免费A级毛片免费看视频| 丰满人妻一区二区三区Aⅴ在线 | 啊灬啊灬高潮来了…视频APP| 日本熟妇在线一区二区三区| 国产成人亚洲精品另类动态图| 亚洲AV无码片区一区二区三区| 久久精品亚洲男人的天堂| 中英字幕乱码在线观看| 人妻人人做人碰人人添青青| 国产精品VⅠDEOXXXX国产| 亚洲精品成人网久久久久久| 免费人成在线观看网站免费观看| 51吃瓜.WORLD张津瑜蘑菇| 日本无遮挡吸乳视频| 精品欧美一区二区在线观看| 337P日本欧洲亚洲大胆色噜噜| 无码中文AV波多野结衣| 久久精品人妻一区二区三区一 | 国产免费无遮挡吸奶头视频| 亚洲日韩精品无码专区网站| 欧美成人影院亚洲综合图| 国产亚洲欧美日韩在线一区二区三 | 99久久精品费精品国产一区二区| 色综合视频一区二区三区44| 国精产品一二三区传媒公司| 在线天堂中文最新版WWW| 日本熟妇厨房XXXXX乱| 久久精品国产大片免费观看| CC小恩雅透明内抹油的使用方法| 亚洲AV无码精品色午夜| 日本畜禽CORPORATION| 国产偷自视频区视频| 在线播放免费人成毛片试看| 三上悠亚SSⅠN939无码播放| 国产特级毛片AAAAAA高清| FREE性欧美╳╳╳HD| 无码国产伦一区二区三区视频| 久久精品卫校国产小美女| 公交车强摁做开腿呻吟| 亚洲人成电影在线观看天堂色| 欧美性极品少妇精品网站| 国产精品亚洲专区无码唯爱网| 硬插人妻一区二区三区| 日韩乱码人妻无码中文字幕视频 | 国内揄拍高清国内精品对白| 中文字幕在线精品视频入口一区| 亚洲AV不卡无码国产| 嫩BBB槡BBBB搡BBBB| 国产精品高清一区二区三区人妖| 99久久久精品免费观看国产| 亚洲精品无码久久久久Y| 人妻 偷拍 无码 中文字幕| 久久精品亚洲中文字幕无码网站| 国产精品成人VA在线播放| YSL蜜桃色成人| 亚洲AV综合色区无码一二三区| 欧美XXXX做受欧美GAY| 精品一区二区三区在线成人| 不屈的儿媳妇电视剧汉语版| 亚洲精品有码在线观看| 日本精品VIDEOSSEX 黑| 九九久久精品无码专区 | 国产成人无码AV在线播放不卡| JLZZ大全高潮多水| 亚洲成AV人片在线观看天堂无| 人妻av无码一区二区| 久久亚洲精品人成综合网| 国产99视频精品免费视频6| 一本久道综合在线无码88| 色欲av蜜臀一区二区四区| 欧美大肚子孕妇疯狂作爱视频| 久久久久久精品免费免费999 | 国精产品砖一区二区三区糖心 | 夜夜爽77777妓女免费看| 亚洲AV韩Av无码色老头| 欧美做受又硬又粗又大视频| 机长脔到她哭H粗话H动漫| JAPONENSIS性护士| 中国熟妇浓毛HDSEX| 无码免费一区二区三区| 欧美XXXxX高潮喷水| 久久久久亚洲精品男人的天堂| 国产JJIZZ女人多水喷水| 3分19秒砍人手脚血腥场面| 亚洲无人区一码二码三码区别| 天天爱天天做天天做天天吃中文| 乱辈通奷ⅩXXXXHD| 国产午夜福利在线播放| 敌伦交换第21部分剧情介绍 | 国产精品特级毛片一区二区三区| 40岁大乳的熟妇在线观看| 野花日本中文版免费观看| 我和几个亲戚都做了爱| 你再躲一个试试BY深巷无酒| 久久夜色精品国产亚洲| 久激情内射婷内射蜜桃人妖| 狠狠色婷婷久久一区二区三区| 处破初破苞一区二区三区| 中文字幕天天躁日日躁狠狠躁免费 | 国产激情久久久久久熟女老人| 91人妻人人澡人人爽人人精品 | 久久99精品久久久久婷婷暖| 国产99久久久国产无需播放器| 草草影院CCYY国产日本欧美| 中文午夜乱理片无码AⅤ| 亚洲一区二区三区AV无码| 亚洲狠狠婷婷综合久久蜜芽| 亚洲AV无码一区二区三区dv| 少妇极度饥渴少妇高潮| 女儿的朋友3完有限中字木瓜| 麻花豆传媒剧国产MV免费天美| 激情五月丁香六月综合AVXXXX| 国产亚AV手机在线观看| 国产精品久久久久9999吃药| 国产成人综合久久久久久 | 国产AV剧情MD精品麻豆| 高潮喷视频在线无码| 国产69囗曝吞精在线视频| 高潮爽死抽搐白浆GIF视频| 丰满老师少妇久久久久久1| 丰满少妇人妻XXXXX| 国产FREEXXXX性麻豆| 国产成 人 黄 色 网 站 小说| AV人摸人人人澡人人超碰小说| 亚洲制服丝袜AV一区二区三区| 亚欧免费无码AⅤ在线观看| 色综合99久久久无码国产精品| 日韩加勒比一本无码精品| 免费视频片多多视频免费高清 | 日韩夜夜高潮夜夜爽无码| 日韩一区二区三区AV| 双腿扒开调教羞辱惩罚视频| 人妻精品一区二区三区蜜桃| 人妻少妇粗大持久满足| 日本不卡一区二区三区| 日日狠狠久久偷偷色综合96| 少妇久久久久久久久久| 玩弄人妻少妇精品视频| 性XXXX欧美老妇506070| 丝瓜秋葵草莓香蕉榴莲绿| 天天躁日日躁狠狠躁婷婷| 午夜理论片YY44880影院| 天堂中文АⅤ在线| 无码AV免费一区二区三区试看 | 激情综合亚洲色婷婷五月APP| 精品人伦一区二区三区潘金莲| 久久久久久精品成人网站| 麻豆文化传媒WWW网站入口| 女人18片毛片60分钟完整版| 久久亚洲男人第一AV网站| 麻豆传播媒体免费版官网| 欧美黑人又粗又大久久久| 牧场ⅩXXXBBBB变态另类| 老熟女重囗味HDXX70星空| 久久久久精品午夜福利| 麻豆AV无码精品一区二区| 欧美成人精品午夜免费影视| 人人妻人人澡人人爽人人精品浪潮 | 黑人大战亚洲女精品区| 国产乱子伦视频在线播放| 好儿子妈妈今后就是你的人| 久久精品人妻少妇一区二区| 免费人成年激情视频在线观看 | 未满小14洗澡无码视频网站| 亚洲AV成人无码久久精品老人| 亚洲欧洲自拍拍偷精品网314| 曰批全过程免费视频观看软件| 亚洲人成网站18禁止| 与大屁股熟女啪啪喷水| CHINESE东北嫖妓女HD| 丁香花在线观看免费观看图片 | 久久精品久久久久久噜噜| 内射少妇骚B一√| 日产精品卡1卡2卡三卡区别| 无码熟妇人妻AV影片在线| 亚洲精品又大又粗| ★浪潮av无码一区二区| 中年国产丰满熟女乱子正在播放| H纯肉无遮掩3D动漫在线观看| 高潮到不停喷水的免费视频| 果冻传媒剧国产剧在线看| 久久一区二区三区精华液| 亲嘴扒胸摸屁股激烈网站| 欧美一区精品视频一区二区| 色欲AV无码中字乱人伦在线| 亚洲AVSSS在线观看| 欲色欲色天天天WWW| 八戒电影电影网电影网| 草莓视频APP下载| 国产精品一区二区AV| 久久精品无码中文字幕| 欧美午夜精品久久久久免费视| 天堂√中文最新版在线中文| 无人区码一码二码三码在线| 亚洲一区二区三区蜜桃|