Oracle笔记:循环及游标
生活随笔
收集整理的這篇文章主要介紹了
Oracle笔记:循环及游标
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
循環(huán)及退出循環(huán):
--while --初值 while 條件 loop循環(huán)體;循環(huán)變量的變化; end loop;--break if 條件 thenexit; end if;--continue <<label>> .... if 條件 thengoto label; end if; --例 declarei integer;j integer; begin j:=1;<<b>> while j<=9loop i:=1; <<a>>while i<=j loopif i=3 theni:=i+1;j:=j+1;goto b; end if;dbms_output.put(i||'*'||j||'='||i*j||' ');i:=i+1; end loop;dbms_output.put_line(''); j:=j+1;end loop ; end;游標(biāo)的使用: --游標(biāo) Result rs = stmt.excuteQuery(); while(rs.next()) {rs.getString(1); }select * from emp; --游標(biāo):指向緩沖區(qū)數(shù)據(jù)行的一個(gè)指針(句柄)。 --指針就是存放地址的一個(gè)變量。 --用法: 1、聲明(declare部分): cursor 游標(biāo)名 is select語(yǔ)句塊(標(biāo)明了游標(biāo)所指向的數(shù)據(jù)區(qū)域); 2、打開(kāi)(begin end執(zhí)行體中)open 游標(biāo)名;(只有在打開(kāi)游標(biāo)時(shí),select語(yǔ)句才真正執(zhí)行,并把首行地址放入游標(biāo)) 3、提取游標(biāo)所指向的數(shù)據(jù)行(循環(huán))fetch 游標(biāo)名 into 指定變量(自行處理)4、關(guān)閉游標(biāo)close 游標(biāo)名;注意: 1、如果想再次使用被關(guān)閉的游標(biāo),可以重新開(kāi)發(fā)游標(biāo)。 2、游標(biāo)是單向的。如果想重新訪問(wèn)開(kāi)頭的數(shù)據(jù),只能關(guān)閉后重新打開(kāi)使用。 3、重要屬性: %found %notfound(沒(méi)有找到數(shù)據(jù)) 4、fetch同時(shí)完成兩件事:1)移向下一行2)提取數(shù)據(jù) --例子 declarev_emp emp%rowtype;cursor cur_emps isselect * from emp; beginopen cur_emps; loopfetch cur_emps into v_emp;exit when cur_emps%notfound;dbms_output.put(v_emp.empno||' ');dbms_output.put(v_emp.ename||' ');dbms_output.put_line(v_emp.deptno); end loop;close cur_emps; end;--游標(biāo)類(lèi)型的變量 declarecursor cur_emps isselect empno,ename,sal,deptno from emp; v_emp cur_emps%rowtype; beginopen cur_emps; loopfetch cur_emps into v_emp;exit when cur_emps%notfound;dbms_output.put(v_emp.empno||' ');dbms_output.put(v_emp.ename||' ');dbms_output.put_line(v_emp.deptno); end loop;close cur_emps; end;--參數(shù) declarecursor cur_emps(dept_no integer) isselect empno,ename,sal,deptno from emp where deptno=dept_no; v_emp cur_emps%rowtype; beginopen cur_emps(20); loopfetch cur_emps into v_emp;exit when cur_emps%notfound;dbms_output.put(v_emp.empno||' ');dbms_output.put(v_emp.ename||' ');dbms_output.put_line(v_emp.deptno); end loop;close cur_emps;open cur_emps(30); loopfetch cur_emps into v_emp;exit when cur_emps%notfound;dbms_output.put(v_emp.empno||' ');dbms_output.put(v_emp.ename||' ');dbms_output.put_line(v_emp.deptno); end loop;close cur_emps; end;總結(jié)
以上是生活随笔為你收集整理的Oracle笔记:循环及游标的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Oracle数据库中表格的级联删除问题
- 下一篇: 网页之错误代码大全