首页 > 数据库 > mysql教程 > Oracle存储过程代码实例一则

Oracle存储过程代码实例一则

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 17:01:26
原创
1027 人浏览过

1、用来插入大量测试数据的存储过程CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST(ST_NUM IN NUMBER,ED_NUM

1、用来插入大量测试数据的存储过程
CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST
(
ST_NUM        IN     NUMBER,
ED_NUM        IN     NUMBER
)
IS
BEGIN
declare
       i   number;
begin
FOR i IN ST_NUM..ED_NUM LOOP
INSERT INTO tb values(i,i,'3','3','3',100,'0');
END LOOP;
end;
END;

运行:
sql>execute INSERTAMOUNTTEST(1,45000)   -- 一次插入45000条测试数据

2、从存储过程中返回值
create or replace procedure spaddflowdate
(
varAppTypeId               in varchar2,
varFlowId                  in varchar2,
DateLength                 in number,
ReturnValue                out number    --返回值
)
is
begin
insert into td values(varAppTypeId,varFlowId,DateLength)
returning 1 into ReturnValue;   --返回值
commit;
exception
when others then
rollback;
end;

存储过程的执行
sql>variable testvalue  number;
sql>execute spaddflowdate('v','v',2,:testvalue);
sql>print
就可以看到执行结果

3、用包实现存储过程返回游标:
create  or  replace  package  test_p 
as 
 
type  outList  is  ref  cursor; 
 
PROCEDURE  getinfor(taxpayerList  out  outList); 
 
end  test_p; 


create  or  replace  package  body  test_p  as  PROCEDURE  getinfor(taxpayerList out  outList)  is  begin 
      OPEN  taxpayerList    FOR  select  *  from
                        td where tag='0'; 
 
end  getinfor; 
 
end  test_p; 

 
 
 
运行:
 
set  serverout  on;    --将输出工具打开
 
variable  x  refcursor; 
 
execute test_p.getinfor(:x);

exec  test_p.getinfor(:x);
 
print  x; 


drop package test_p;

linux

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
TP6教程问题
来自于 1970-01-01 08:00:00
0
0
0
TP5.1首发教程和独孤九剑的TP5教程区别
来自于 1970-01-01 08:00:00
0
0
0
有什么经典的symfony1.2教程
来自于 1970-01-01 08:00:00
0
0
0
求教程课件下载
来自于 1970-01-01 08:00:00
0
0
0
没有bootstrap自定义的视频教程
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板