第一次写游标

游标简单理解是把结果集遍历输出。下面是我写的第一个游标:

指明字段与变量,加了查询条件,变量直接取的是表格里的数据类型%type,不用担心表格中的字段数据格式的变更报错。

set serverout on;
declare cursor cu_emp   is select gbid,gbcname,gbbarcode from goodsbase where gbid<103000; 
e_no goodsbase.gbid%type;
e_name goodsbase.gbcname%type;
e_sal goodsbase.gbbarcode%type;
begin
  open cu_emp;
  fetch cu_emp into e_no,e_name,e_sal; 
  while cu_emp%found loop
    dbms_output.put_line('编码:'||e_no||',品名:'||e_name||',条码:'||e_sal);
    fetch cu_emp into e_no,e_name,e_sal;  --这个我开始忘记了,就不循环,运行的全是一样的结果。
  end loop;
  close cu_emp;   --关闭游标我开始写成了close cursor。
end;

整行游标,只要稍微改下:

set serverout on;
declare cursor cu_emp   is select * from goodsbase where gbid<100300; --整行,这里必须是*
e goodsbase%rowtype;  --%rowtype整行语法
begin
  open cu_emp;
  fetch cu_emp into e;
  while cu_emp%found loop
    dbms_output.put_line(e.gbcatcode);  --可以随便输出哪些字段
    fetch cu_emp into e;
  end loop;
  close cu_emp;
end;

posted @ 2020-10-17 14:37  蜕变大哥  阅读(125)  评论(0)    收藏  举报