zoukankan      html  css  js  c++  java
  • Oracle存储过程和存储函数

    参看https://www.imooc.com/learn/370

    Oracle存储过程、 存储函数
          说明:存储过程、存储函数都是对象。包括表、视图、
    索引、序列、同义词等也是对象。

          概念:指存储在数据库中供所有用户程序调用的子程序叫存储
    过程、存储函数。

          特点:完成特定功能的程序。

          区别:存储函数可以通过return子句返回一个值。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    创建和使用存储过程
    用create procedure命令建立存储过程和存储函数。
    语法
    create [or replace] procedure 过程名(参数列表)
    as plsql子程序体;

    说明:存储过程只能创建或替换,不能修改。 其中,pl
    sql子程序为说明的部分。

    create [or replace] procedure 过程名(参数列表)
    as

    ----声明部分  相当于declare  不可以省略

    eg:

    create [or replace] procedure sayhello( )
    as
    
    begin
    
            dbms_output.put_line("helloworld");
    
    end

    调用:

    exec sayhello( );
    
    或
    
    begin
    
         exec sayhello( );
    
         exec sayhello( );
    
    end;
    带参数的存储过程之带输入参数;
    eg:
    --创建一个带参数的存储过程:
    --目的:给指定的员工涨100块工资,并且打印涨薪前和涨薪后的薪水
    
    
    create or replace procedure raisesalary(eno in number)
    as
    --定义一个变量保存涨薪前的薪水
    psal emp.sal%type;
    
    begin
         --得到员工涨薪前的薪水
         select sal into psal
         from emp
         where empno=eno;
         --给该员工涨100
         update emp
         set sal=sal+100
         where empno=eno;
    
        --需不需要commit?
        --注意:一般不在存储过程或者存储函数中commit和rollback; 但是其实可以
        --这样操作,它一般作为子程序来调用,在调用时候即可看出原因。
    
         --打印
         dbms_output.put_line("涨薪前:"||psal||"张新后:"||(psal+100));
    end;
    调用:
    begin
         raisesalary(7839);
         raisesalary(7639);
         commit;
    end;
    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    切换RequiredFieldValidator和RegularExpressionValidator提示信息的控件
    添加删除查询字符串中的参数
    动易订单数据表关系
    页面中文乱码问题收集(原创)
    URLRewrite 在 iis6+iis7中的配置
    ASP.NET面试题(英文)
    execve
    pipe管道通信阻塞
    pipe
    linux管道通信
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/11041155.html
Copyright © 2011-2022 走看看