oracle数据库的游标和存储过程怎么写?
发布网友
发布时间:2022-04-22 12:54
我来回答
共2个回答
热心网友
时间:2023-08-20 13:19
Oracle游标,从字面理解就是游动的光标。用数据库语言来描述就是:游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等。
游标分为显示游标和隐式游标。
要使用显示游标分为四步:
1.声名游标。
cursor sel_names is select * from names;
2.打开游标。
open sel_names;
3.读取数据。
fetch sel_name into RowTypeVariable;
4.关闭游标。
close sel_name;
Oracle游标的属性:
1.%ISOPEN判断游标是否被打开,如果打开%ISOPEN等于true,否则等于false;
2.%FOUND判断游标所在的行是否有效,如果有效,则%FOUND等于true,否则等于false;
3.%ROWCOUNT返回当前位置为止游标读取的记录行数。
例子:
set serveroutput on;
declare
temp_name varchar2(32);
cursor sel_name
is
select * from names;
begin
if sel_names%isopen = false then
open sel_names;
end if;
fetch sel_names into temp_name;
while sel_names%found loop
dbms_output.put_line('name: '||temp_name);
if sel_names%rowcount=200 then
exit;
end if;
fetch sel_names into temp_name;
end loop;
close sel_names;
end;
/
热心网友
时间:2023-08-20 13:19
varno varchar2(20);
varprice varchar2(20);
CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic
where com_no = vartype;
begin
if mycur%isopen = false then
open mycur(043925);
end if;
fetch mycur into varno,varprice;
while mycur%found
loop
dbms_output.put_line(varno||','||varprice);
if mycur%rowcount=2 then
exit;
end if;
fetch mycur into varno,varprice;
end loop;
close mycur;
end;
记录并不保存在数据库中,它与变量一样,保存在内存空间中,在使用记录时候,要首先定义记录结构,然后声明记录变量。可以把PL/SQL记录看作是一个用户自定义的数据类型。