游标简单理解是把结果集遍历输出。下面是我写的第一个游标:
指明字段与变量,加了查询条件,变量直接取的是表格里的数据格式%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;
原文:https://www.cnblogs.com/sb5168/p/13831025.html