Oracle中使用游標

2021-09-30 04:46:38 字數 2095 閱讀 8009

/*游標

目的:為了處理select語句返回多行資料

使用步驟:

1、定義游標

cursor cursor_name is select_statement

2、開啟游標

open cursor_name

3、提取資料

fetch cursor_name into variable1,...  --提取一行資料

或fetch cursor_name into bulk collect collect1,...   --提取多行資料

4、關閉游標

close  cursor_name

顯示游標屬性:

使用方法:cursor_name%游標屬性

常用游標屬性:

%isopen

%found

%not found

%rowcount

*/declare

cursor emp_cursor

isselect ename,sal from emp where deptno=20;

v_ename emp.ename%type;

v_sal emp.sal%type;

begin

open emp_cursor;

loop

fetch emp_cursor into v_ename,v_sal;

exit when emp_cursor%notfound;

dbms_output.put_line('姓名:' || v_ename || ',薪水:' || v_sal);

end loop;

close emp_cursor;

end;

/*引數游標

cursor cursor_name (parameter_name datatype)

is select_statement

*/declare

cursor getuser_cursor(cno number)

is select ename,sal from emp where deptno=cno;

v_ename emp.ename%type;

v_sal emp.sal%type;

begin

if not getuser_cursor%isopen then

open getuser_cursor(&no);

end if;

loop

fetch getuser_cursor into v_ename,v_sal;

exit when getuser_cursor%notfound;

dbms_output.put_line('姓名:' || v_ename || ',薪水:' || v_sal);

end loop;

close getuser_cursor;

end;

select * from emp;

/*游標的for迴圈

for record_name in cursor_name loop

statement1;

...end loop;

注意:使用游標的for迴圈時,不要顯示的開啟和關閉游標

*/declare

cursor showemp_cursor

is select ename from emp where deptno=&no;

begin

for emp_name in showemp_cursor

loop

dbms_output.put_line('第' || showemp_cursor%rowcount || '個員工' || emp_name.ename);

end loop;

end;

/*在使用游標迴圈時可以直接在游標for迴圈中使用子查詢*/

begin

for emp_name in (select ename from emp where deptno=&no)

loop

dbms_output.put_line('員工:' || emp_name.ename);

end loop;

end;

mysql中使用游標

sql view plain copy set max sp recursion depth 100 下面是mysql遞迴呼叫的源 sql view plain copy dropdelimiter createin uidvarchar 225 in ncountint begin declare...

Oracle使用游標

了解一下訪問資料庫的ddl和tcl語句 一。plsql中使用select語句,應該與into字句連用,查詢出的返回值賦予into子句中的變數 變數的宣告是在delcare中 二。type屬性 在plsql中可以將變數和常量宣告為內建或使用者定義的資料型別,以引用乙個列名,同時繼承他的資料型別和大小。...

在Oracle過程中使用游標

create or replace procedure ss c002 tm14to13 p errcode out number,p errtext out varchar2 is isbn轉換條碼,14位錯誤的轉換成13位正確的 yc2008 04 18 cursor c gckc is sel...