oracle存储过程代码实例一.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle 存 储过 程代 码实 例一 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; 运行: sqlexecute 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; 存储过 程的 执 行 sqlvariable testvalue number; sqlexecute spaddflowdate(v,v,2,:testvalue); sqlprint 就可以看到 执 行结果 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(taxpayerLi st 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; 认识 存储过 程和函数 存 储过 程和函数也是一 种 PL/SQL 块 ,是存入数据 库 的 PL/SQL 块 。但存 储过 程和函数不同 于已 经介 绍过 的 PL/SQL 程 序,我 们 通常把 PL/SQL 程序称 为无名 块 ,而存 储过 程和函数是 以命名的方式存 储 于数据 库 中的。和 PL/SQL 程序相比,存 储过 程有很多 优 点,具体 归纳 如 下: * 存 储过 程和函数以命名的数据 库对 象形式存 储 于数据 库 当中。存 储 在数据 库 中的 优 点是很 明显 的,因 为 代 码 不保存在本地,用 户可以在任何客 户 机上登 录 到数据 库 ,并 调 用或修改代 码 。 * 存 储过 程和函数可由数据 库 提供安全保 证 ,要想使用存 储过 程和函数,需要有存 储过 程和 函数的所有者的授 权 ,只有被授 权 的用 户 或 创建者本身才能

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档