当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

关于游标的一点发现


  
  昨天在写存储过程的时候发现了一个以前忽视了的地方,不知道对大家有没有用。
  创建显性游标:
  create or replace procedure test 
  is 
  cursor test1 is select name from devp;
  test2 devp.name%type;
  begin
  open test1;
  loop
  fetch test1 into test2;
  dbms_output.put_line(test2); --注意,此处用的是test2变量
  exit when test1%notfound;
  end loop; 
  close test1;
  end;
  /
  
  create or replace procedure test 
  is 
  cursor test1 is select name from devp;
  test2 test1%rowtype;
  begin
  open test1;
  loop
  fetch test1 into test2;
  dbms_output.put_line(test2.name); --注意,此处用的是test2.name
  exit when test1%notfound;
  end loop;
  close test1;
  end;
  /
  
  
  下面用隐性游标试一下:
  create or replace procedure test 
  is 
  cursor test1 is select name from devp;
  test2 devp.name%type;
  begin
  for test2 in test1 loop
  dbms_output.put_line(test2.name); --注意,此处用的是test2.name
  end loop;
  end;
  /
  
  create or replace procedure test 
  is 
  cursor test1 is select name from devp;
  test2 test1%rowtype;
  begin
  for test2 in test1 loop
  dbms_output.put_line(test2.name); --注意,此处用的是test2.name
  end loop;
  end;
  /
  
  由于使用的游标的不同,我们最终在使用变量的时候还是有一些小区别的。希望大家以后在调代码的时候少走弯路。
  
相关内容
赞助商链接