oracle中通过游标实现查询
1.通過(guò)提取數(shù)據(jù)
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.通過(guò)for循環(huán)
??? 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循環(huán)
BEGIN??
FOR?re?IN?(SELECT?ename?FROM?EMP)??LOOP ??
??DBMS_OUTPUT.PUT_LINE(re.ename) ??
END?LOOP; ??
END;??
?
4.游標(biāo)的屬性
?
?
?? 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('沒(méi)有相關(guān)信息');
?? end if;
?? close emp_cursor;
?? end;
?
5.帶參數(shù)的游標(biāo)
????????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;??
?
?
??
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/yuloe2012/archive/2012/12/11/2812947.html
總結(jié)
以上是生活随笔為你收集整理的oracle中通过游标实现查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring AOP基础—JDK动态代理
- 下一篇: 莱芜长运公共交通有限公司简介