Oracle数据库之Oracle 存储过程 PROCEDURE
小标 2018-08-20 来源 : 阅读 1114 评论 0

摘要:本文主要向大家介绍了Oracle数据库之Oracle 存储过程 PROCEDURE,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

本文主要向大家介绍了Oracle数据库之Oracle 存储过程 PROCEDURE,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

存储过程  

    一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。

    包含三部分:过程声明,执行过程部分,存储过程异常(可选)。

示例

create or replace procedure sp_
(  p_sResult   out integer,--返回值
   p_ID       in   number --ID
)
as
      v_id       number(16);
      cursor  v_chac_cr  is
                select t.money from T001 t   where t.sid=p_ID;--游标
begin
   open v_chac_cr();
   loop
        fetch v_chac_cr into v_id;
        exit when v_chac_cr%notfound;
        insert into F002(cnt)  values (v_id);
   end loop;
   close v_chac_cr;
   commit;
   p_sResult:=1;
exception--例外处理
   when others then
   p_sResult:=0;
   rollback;
end sp_;  
 项目运用

  1.获取表下一个ID值

CREATE OR REPLACE PROCEDURE SP_CONTENT (
      o_result out types.cursorType, --结果集
      ip_pwf  in varchar2) --关联流程    
as
   /*  --类型声明是游标变量
    create or replace package TestPackage is type outlist is ref cursor;
 */
  v_sql varchar2(1000);
  vn_count  numeric(12,0);
  vn_num    numeric(12,0);
  vn_id     numeric(12,0);
  vs_table  varchar2(30);
  vn_inst numeric(12,0);
begin
   vn_count:=length(ip_pwf);
   vn_num:=instr(ip_pwf,'.');
   vn_id:=to_number(substr(ip_pwf,1,vn_num-1));
   vs_table:=substr(ip_pwf,vn_num+1,vn_count-vn_num);
 begin
 v_sql:='select nvl(max(job_code),0)  from '||vs_table||' where company = '||vn_id||'';
 execute immediate v_sql into vn_inst;
 exception
   when others then
   vn_inst:=0;
 end;
 open o_result for
 select caller,enddate,content from tuser t where class_code < vn_inst;
end SP_CONTENT;    

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程