创建 带有参数的 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;