oracle帶引數的遊標
阿新 • • 發佈:2019-01-30
Oracle中的遊標可以帶引數麼?具體怎麼實現呢?
可以啊,引數在遊標定義時使用,開啟時傳入引數,例如: create or replace procedure a as cursor b(c_id int)is select * from d where id=c_id; begin open b(111); end;
參遊標是指帶有引數的遊標。在定義了引數遊標之後,當使用不同引數值多次開啟遊標時,可以生成不同的結果集。定義引數遊標的語法如下:
CURSOR cursor_name(parameter_name datetype) IS select_statement;
注意,當定義引數遊標時,遊標引數只能指定資料型別,而不能指定長度。當定義引數遊標時,一定要在遊標子查詢的where子句中引用該引數,否則就失去了定義引數遊標的意義。
declare cursor emp_cursor(no number) is select ename from emp where deptno=no; v_ename emp.ename%type; begin open emp_cursor(10); loop fetch emp_cursor into v_ename; exit when emp_cursor%notfound; dbms_output.put_line('僱員名: '||v_ename); end loop; end;