zoukankan      html  css  js  c++  java
  • oracle如何创建存储过程和调用

    oracle存储过程的创建语法

    create or replace procedure 存储过程名称
    (
    --定义输入、输出参数--
    参数名1 in 参数类型,
    参数名2 in 参数类型,
    参数名3 in 参数类型,
    参数名4 out 参数类型
    )
    as
    --定义变量--
    --变量名 变量数据类型;如:
     -- numCount integer; 
    begin   
         --处理方法-
    end;

    上面我们创建一个处理加、减、乘、除计算的函数,那么我们也可以建成存储过程

    /*****
    ** 创建加、减、乘、除计算的存储过程
    **输入参数: 数字1,数字2,计算类型
    **输出参数: 数字3
    *****/
    create or replace procedure Proc_Test
    (
    --定义输入、输出参数--
    num_A in integer,
    num_B in integer,
    numType in integer,
    num_C out integer
    )
    as
    --定义变量--
     -- numCount integer;
     -- numStr varchar(20);  
    begin   
         --判断计算类型--
         if numType=1 then
            num_C := num_A + num_B;
         elsif numType=2 then
            num_C := num_A - num_B;
         elsif numType=3 then
            num_C := num_A * num_B; 
         elsif numType=4 then
            num_C := num_A / num_B; 
         else
         --其它处理
           dbms_output.put_line('其它处理');
         end if;
    end;

    那么如何调用存储过程

    declare num_C integer;
    begin
       --调用存储过程---
       Proc_Test(3,4,3,num_C);
       dbms_output.put_line('输出结果:'|| num_C );
    end;

    输出结果

     那么,如果我们要在存储过程调用函数,是怎么处理的呢?

    create or replace procedure Proc_Test
    (
    --定义输入、输出参数--
    num_A in integer,
    num_B in integer,
    numType in integer,
    num_C out integer
    )
    as
    --定义变量--
     -- numStr varchar(20);  
    begin   
       /*  --判断计算类型--
         if numType=1 then
            num_C := num_A + num_B;
         elsif numType=2 then
            num_C := num_A - num_B;
         elsif numType=3 then
            num_C := num_A * num_B; 
         elsif numType=4 then
            num_C := num_A / num_B; 
         else
         --其它处理
           dbms_output.put_line('其它处理');
         end if;*/
         
         --调用函数 并赋值到num_C
         num_C:=fun_Test(num_A,num_B,numType);
    end;

    只要把处理过程放到函数中,存储过程调用函数就可以了

    再次调用的结果

    declare num_C integer;
    begin
       --调用存储过程---
       Proc_Test(12,2,4,num_C);
       dbms_output.put_line('输出结果:'|| num_C );
    end;

    输出结果

  • 相关阅读:
    spring培训PPT
    如何创建新模块 DotNetNuke 6 & Entity Framework Code First
    博客园 漂浮快捷操作
    Ext.net中如何上传文件
    Excel与数据库之间的那些事
    关于SQL一对多关系转换的效率思考
    JQuery的结构Dive into jQuery
    《JAVA与模式》之简单工厂模式
    JSM SqlHelper 2.0 新特性(C#)
    mutex互斥锁
  • 原文地址:https://www.cnblogs.com/xielong/p/10715731.html
Copyright © 2011-2022 走看看