2011-10-19对裁判光标的理解

  

http://www.itpub.net/thread - 1499223 - 7 - 1. - html

  

64楼   

,   

  

我创建了这张表并填入了数据:

  <>以前CREATE  TABLE  plch_employees   (   ,,,employee_id 整数   ,,last_name ,,,, VARCHAR2  (100)   ,,salary ,,,,,,,号码   )/,   开始   ,,INSERT  INTO  plch_employees   ,,,,,,,VALUES (100年,& # 39;埃里森# 39;,,1000000);   ,,INSERT  INTO  plch_employees   ,,,,,,,VALUES (200年,& # 39;盖茨# 39;,,1000000);   ,,INSERT  INTO  plch_employees   ,,,,,,,VALUES (300年,& # 39;扎克伯格# 39;,,1000000);   ,才能提交;   结束;/   

然后我写了这个块:

  <>之前宣布   ,,c1 ,,,, SYS_REFCURSOR;   ,,c2 ,,,, SYS_REFCURSOR;   ,,l_id ,, plch_employees.employee_id %类型;   开始   ,,OPEN  c1    ,,,,,,,SELECT  employee_id 得到plch_employees   ,,,,,ORDER  BY  last_name;   ,,/* */结束   异常   ,,WHEN 别人   ,,   ,,,,,DBMS_OUTPUT.put_line (& # 39;错误# 39;);   结束;/   

下列的选项中哪些可用来代替上文的/* */结束,从而使得这个块执行之后会显示下列三行:   100年
  200年
  300年
  

  

,   

  

(一个)   <>以前FETCH  c1  INTO  l_id;   DBMS_OUTPUT.put_line  (l_id);   c2 :=, c1;   FETCH  c2  INTO  l_id;   DBMS_OUTPUT.put_line  (l_id);   CLOSE  c1;   FETCH  c2  INTO  l_id;   DBMS_OUTPUT.put_line  (l_id);   <>前完成申报   2,,,,,,c1 ,, SYS_REFCURSOR;   ,,3,,,c2 ,, SYS_REFCURSOR;   4,,,,,,l_id  plch_employees.employee_id %类型;   5,才能开始   6,,,,,,OPEN  c1    7,,,,,,,,SELECT  employee_id 得到plch_employees  ORDER  BY  last_name;   ,8,大敌;   9,,,,,,FETCH  c1   ,10个,,,,,INTO  l_id;   ,11,,,DBMS_OUTPUT.put_line (l_id);   12,大敌;   ,13,,,c2 :=, c1;   14,大敌;   ,15,,,FETCH  c2   ,16岁,,,,,INTO  l_id;   ,17,,,DBMS_OUTPUT.put_line (l_id);   ,18岁,   ,19岁,,,CLOSE  c1;   ,20,   ,21,,,FETCH  c2   ,22岁,,,,,INTO  l_id;   ,23,,,DBMS_OUTPUT.put_line (l_id);   ,24岁,   ,25,例外   ,26岁,,WHEN  OTHERS 然后   ,27,,,,,DBMS_OUTPUT.put_line(& # 39;错误# 39;);   ,28日,结束;   ,29日/One hundred.   200   错误   PL/SQL  procedure  successfully 完成   完成   

,   

  

(B)   <>以前FETCH  c1  INTO  l_id;   DBMS_OUTPUT.put_line  (l_id);   c2 :=, c1;   FETCH  c2  INTO  l_id;   DBMS_OUTPUT.put_line  (l_id);   CLOSE  c2;   FETCH  c1  INTO  l_id;   DBMS_OUTPUT.put_line  (l_id);   <>前完成申报   2,,,,,,c1 ,, SYS_REFCURSOR;   ,,3,,,c2 ,, SYS_REFCURSOR;   4,,,,,,l_id  plch_employees.employee_id %类型;   5,才能开始   6,,,,,,OPEN  c1    7,,,,,,,,SELECT  employee_id 得到plch_employees  ORDER  BY  last_name;   ,8,大敌;   9,,,,,,FETCH  c1   ,10个,,,,,INTO  l_id;   ,11,,,DBMS_OUTPUT.put_line (l_id);   12,大敌;   ,13,,,c2 :=, c1;   14,大敌;   ,15,,,FETCH  c2   ,16岁,,,,,INTO  l_id;   ,17,,,DBMS_OUTPUT.put_line (l_id);   ,18岁,   ,19岁,,,CLOSE  c2;   ,20,   ,21,,FETCH  c1   ,22岁,,,,,INTO  l_id;   ,23,,,DBMS_OUTPUT.put_line (l_id);   ,24岁,   ,25,例外   ,26岁,,WHEN  OTHERS 然后   ,27,,,,,DBMS_OUTPUT.put_line(& # 39;错误# 39;);   ,28日,结束;   ,29日/null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

2011-10-19对裁判光标的理解