zoukankan      html  css  js  c++  java
  • Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。

    Oracle存储过程可以有无参数存储过程和带参数存储过程。 
    、无参程序过程语法

     create or replace procedure NoParPro
     as  ;
     begin
     ;
     exception     //存储过程异常
         ;
     end;
     


            二、带参存储过程实例

     create or replace procedure queryempname(sfindno emp.empno%type) as
             sName emp.ename%type;
             sjob emp.job%
    type;
     begin

            ....
    exception
              ....
    end;


        三、 带参数存储过程含赋值方式

    create or replace procedure runbyparmeters  (isal in emp.sal%type,
                                sname out varchar,sjob in out varchar)
      as icount number;
      begin
           select count(*) into icount from emp where sal>isal and job=sjob;
           if icount=1 then
             ....
          else
             ....
           end if;
      exception
           when too_many_rows then
           DBMS_OUTPUT.PUT_LINE('返回值多于1行');
           when others then
           DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
      end;


      四、在Oracle中对存储过程的调用
      过程调用方式一

     declare
            realsal emp.sal%type;
            realname varchar(40);
            realjob varchar(40);
      begin   //存储过程调用开始
            realsal:=1100;
            realname:='';
            realjob:='CLERK';
            runbyparmeters(realsal,realname,realjob);     --必须按顺序
            DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);
      END;  //过程调用结束
     

      过程调用方式二

    declare
           realsal emp.sal%type;
          realname varchar(40);
           realjob varchar(40);
     begin    //过程调用开始
           realsal:=1100;
         realname:='';
          realjob:='CLERK';
          runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); 
     --指定值对应变量顺序可变
          DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);
     END;  //过程调用结束

     至此,有关ORACLE的基本存储过程以及对Oracle存储过程的调用方式介绍完毕。

  • 相关阅读:
    解决Data truncation: Truncated incorrect DOUBLE value: 'xxxxxxx';
    免费LOGO在线生成+免费图床 (亲测可用)
    解决问题:bat脚本手动执行没问题,自动执行不成功
    flask上线部署————“WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.”
    钉钉机器人自动推送测试报告
    Python 自动化测试报告通过钉钉机器人推送通知
    转载:如何将新建的项目完整的提交到gitlab上?
    GIT推送时,空文件夹无法添加
    ddt+excel接口自动化测试-HtmlTestRunner报告中用例名称显示excel中自定义的名称
    Exp9 Web安全基础 20154301仉鑫烨
  • 原文地址:https://www.cnblogs.com/Lightning-Kid/p/3935049.html
Copyright © 2011-2022 走看看