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;

    输出结果

  • 相关阅读:
    Java连接MySQL数据库——含步骤和代码
    JAVA join()方法
    Canny边缘检测
    JAVA NIO——Buffer和FileChannel
    剑指offer——树的子结构 (JAVA代码)
    校测链接集合贴
    莫比乌斯反演
    可持久化数据结构
    thusc2021题解
    THUSC2021夏令营自闭记
  • 原文地址:https://www.cnblogs.com/xielong/p/10715731.html
Copyright © 2011-2022 走看看