zoukankan      html  css  js  c++  java
  • 【Oracle11g】19_存储过程

    1.语法

    -- 创建存储过程的语法
    CREATE [OR REPLACE] PROCEDURE 
       <procedure name> [(<parameter list>)]
    IS|AS 
       <local variable declaration>
    BEGIN
       <executable statements>
    [EXCEPTION
       <exception handlers>]
    END;
    

    2.过程参数的三种模式

    • IN
      • 用于接受调用程序的值
      • 默认的参数模式
    • OUT
      • 用于向调用程序返回值
    • IN OUT
      • 用于接受调用程序的值,并向调用程序返回更新的值。

    3.实战案例

    3.1 in参数使用:按要求打印行

    写一个存储过程,输出:
    *
    **
    ***
    ****
    *****
    ******
    *******

    实现代码:

    create or replace procedure proc1(i in number)
    as
        a varchar2(100);
    begin
        a := '';
        for j in 1..i 
        loop
            a := a || '*';
            dbms_output.put_line(a);
        end loop;
    end;
    
    -- 执行存储过程 SQL*Plus
    exec proc1(7)
    
    

    执行结果:

    3.2 out参数使用:打印值

    -- 创建过程
    create or replace procedure  proc2(j out int)
    as
    begin
        j := 100;
        dbms_output.put_line(j);
    end;
    
    -- 执行
    declare
        k number;
    begin
        proc2(k);
    end;
    /
    

    3.3 in out参数使用

    create or replace procedure   proc3(p1 in out number, p2 in out number)
    is
        v_temp number;
    begin
        v_temp := p1;
        p1 := p2;
        p2 := v_temp;
    end;
    
    -- 执行
    declare
        num1 number := 11;
        num2 number := 22;
    begin
        proc3(num1 ,num2 );
        dbms_output.put_line('num1:' || num1);
        dbms_output.put_line('num2:' || num2);
    end;
    /
    
  • 相关阅读:
    eclipse c++
    smb
    osx mount nfs/smb
    0927用的
    0926 隐藏地址栏
    0921笔记
    生成文件并下载
    在线图标
    react redux
    electron
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12782933.html
Copyright © 2011-2022 走看看