zoukankan      html  css  js  c++  java
  • PL/SQL 存储函数和过程

    --存储过程  
     1.不带参:
       create or replace procedure 存储过程名
    as|is
    --说明部分
    begin
    --执行的语句;
    end;
    
    调用存储过程
    
    1 execute 存储过程名
       --exec 存储过程名
    
    
    2  在另外的plsql语句中直接调用
    
    begin  
       存储过程名;
       存储过程名;
       存储过程名;
    endcreate or replace procedure p_dept
    as
    begin
      dbms_output.put_line('存储过程');
    end;
    
    
    
    
    
    
    2.带参的存储过程
    
    
    create or replace procedure 存储过程名 (参数 in|out 参数类型)
    as|is
    --说明部分
    begin
    --执行的语句;
    end--eg:
    create or replace procedure p_dept1 (nuo in number)
    as
    --说明部分
    v_english dept.english%type;
    begin
    --执行的语句;
    
    --修改前的分数
    select english into v_english from dept where id=nuo;
    --修改后的分数
    update dept set english=english+10 where id=nuo;
    --打印
    dbms_output.put_line('修改前分数为:'||v_english||'修改后的分数为'||(v_english+10));
    
    end;
    in和out的区别
    
    
    
    
    --创建一个不带参的函数
    
    create or replace function f_dept
    --返回的是一个类型
    return number
    as
    --说明部分
    --定义一个变量来接收分数
    v_english dept.english%type;
    
    begin
      select english into v_english from dept where name1='杨雾';
      dbms_output.put_line(v_english);
      return v_english;
    end;
    
    
    
    --存储过程调用out方法实现返回多个值
    create or replace procedure p_dept2 (nuo in number,
                                         v_name out varchar2,
                                         v_english out number,
                                         v_math out number)
    
    as
    --说明部分
    begin
    --执行的语句;
    
    --修改前的分数
    select name1,english,math into v_name,v_english,v_math from dept where id=nuo;
    
    end;
    -- 存储过程
    create or replace procedure p_score
    is v_math number;
    begin 
      select math into v_math from scores where id=3;
      dbms_output.put_line(v_math);
    end;
    
    
    -- 带参储存过程
    create procedure p_score2(digital in number)
    as v_chinese number;
    begin 
      select chinese into v_chinese from scores where id=digital;
      dbms_output.put_line(v_chinese);
    end;
    
    
    --存储过程调用out方法返回多个值
    create or replace procedure 
    p_score3(v_id in number,v_english out number,v_chinese out number)
    as v_math number;
    begin 
      select math,chinese,english into v_math,v_chinese,v_english from scores
      where id = v_id;
      dbms_output.put_line('Math:'||v_math||','||'Chinese:'||v_chinese||','||'English:'||v_english);
    end;
    
    
    
    -- 函数
    create or replace function f_score
    return number
    as
    v_english scores.english%type;
    begin
      select english into v_english from scores where id = 5;
      return v_english;
    end;
      
    -- 带参函数
    create or replace function f_score2(digital in number)
    return scores.english%type
    as
    v_english number;
    begin
      select english into v_english from scores where id = digital;
      return v_english;
    end;
    
    
    
    
    
    
    
    
      
  • 相关阅读:
    基于Python的接口自动化-pymysql模块操作数据库
    基于Python的接口自动化-Requests模块
    基于Python的接口自动化-JSON模块的操作
    基于Python的接口自动化-读写配置文件
    基于Python的接口自动化-HTTP接口基本组成和网页构成
    JMeter接口压测和性能监测
    Linux之系统信息和性能监测
    background-origin和background-clip的区别
    $.ajax请求返回数据中status为200,回调的却是error?
    前端工程师必备的前端思维
  • 原文地址:https://www.cnblogs.com/lantu1989/p/6165221.html
Copyright © 2011-2022 走看看