• 5:存储函数


    无参的存储过程

    --存储过程
    create or replace procedure pro_query
    is
    begin
        declare
        v_no dept.deptno%type := &no;
        v_count number(5,0);
        begin
          select count(emp.empno) into v_count
          from emp
          where emp.deptno = v_no; 
        dbms_output.put_line('员工数量为:'|| v_count);
        end;
    end;
    
    --调用存储过程
    begin
        pro_query; --存储过程名
    end;

    有参存储过程,输出参至少赋值一次

    --有参存储过程
    create or replace procedure pro_query1
    (v_deptno emp.deptno%type,
     v_count out number)
    is     --参数不加长度
    begin
      begin    
        select count(empno) into v_count from emp
        where deptno = v_deptno;
        end;
    end;
    --有参调用过程
    declare
    v_count number(3,0) := 0;
    begin
      pro_query1(30,v_count);
      dbms_output.put_line(v_count);
    end;

    默认值传参-不推荐使用

    --给某个人涨一定薪资,用默认值的方式
    create or replace procedure pro_addsal
    (
      eno number default 7788,
      adsal in number default 100
    )
    is
    begin
      declare
        v_sal emp.sal%type;
        v_name emp.ename%type;
        begin
        select sal into v_sal
        from emp where emp.empno = eno;  
        select ename into v_name
        from emp where emp.empno = eno;
        
        update emp set sal = v_sal + adsal
        where emp.empno = eno;
        dbms_output.put_line('姓名是:'||v_name||'工资增长了'||adsal);
        commit;
        end;
    end;

    --调用
    begin
      --pro_addsal;
      --当形参实参不对应时
      pro_addsal(adsal => 100,eno => 7788);
    end;

     存储过程、函数,是存储在数据库端的,在数据库端执行的对象

    (1)减少网络传输量,无需在程序和数据库端往返传输数据

    (2)相对安全

    (3)效率高,已经进行预编译,直接执行即可

    缺点:都在数据库端执行,当并发访问时,服务器压力大,效率低

  • 相关阅读:
    【Jenkins】之自动化测试持续集成
    【shell】正则表达式
    【openwrt】systemctl详解
    STM32(三十九)RS485串口通信
    ucos(十)信号量优先级反转
    ucos(九)互斥锁和死锁
    【线程】pthread介绍
    git push发现本地 代码没有更新到最新版本,但是已经commit怎么办?
    reset按键和ipget按键在openwrt中的处理逻辑
    用openwrt编译工具链编译一个可执行文件
  • 原文地址:https://www.cnblogs.com/miaomeng/p/8920187.html
Copyright © 2020-2023  润新知