ORACLE存储过程学习笔记

创建 带有参数的 test
create or replace procedure test(a in int:=0,b in int:=0)
is
c int:=0;
begin

c:=a+b;
dbms_output.put_line(c);

end test;

–使用游标

declare cursor mycur is select t.sheet_id,t.VW_186 from hdb.hdb_sheet_2_v t;– 定义游标
sheet_id hdb.hdb_sheet_2_v.sheet_id%type; –定义变量
VW_186 hdb.hdb_sheet_2_v.VW_186%type; –定义变量
begin
DBMS_OUTPUT.ENABLE (buffer_size=>null) ; –设置DBMS的大小为null也就是不限制,否则报错ORA-20000: ORU-10027: buffer overflow,….
open mycur;–打开游标
loop –循环开始
fetch mycur into sheet_id,VW_186;–赋值
exit when mycur%notfound;–如果游标是空 则退出
if mycur%found then–如果游标不是空则执行打印
dbms_output.put_line(mycur%rowcount||'行'||' '||sheet_id||' '||VW_186);
end if;
end loop;
dbms_output.put_line('我发现'||mycur%rowcount||'行');
close mycur;
end;

–实现带参数动态输入
declare cursor query(vname varchar2) is select t.* from hdb.hdb_sheet_2_v t
where t.VW_106 like '%'||vname||'%';
name1 varchar(10) :='于洪';
begin
DBMS_OUTPUT.ENABLE (buffer_size=>null) ;
name1:=upper('&name1');
for line in query(name1)
loop
exit when query%notfound;
if query%found then
dbms_output.put_line(query%rowcount||'行'||' '||line.sheet_id||' '||line.vw_186||' '||line.vw_106);
end if;
end loop;
dbms_output.put_line('我发现'||query%rowcount||'行');
close query;
end;

你可能感兴趣的:(ORACLE存储过程学习笔记)