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;
    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    [整理III]微软等数据结构+算法面试100题[最新第61-80题]
    横空出世,席卷互联网--评微软等公司数据结构+算法面试100题
    SQL Server2008创建约束图解
    sqlserver2008中如何用右键可视化的设置外键
    SQL的主键和外键约束
    Visual Basic|VB 6.0中文版
    java 用eclipse j2ee写的servlet 程序,WEB-INF下的配置文件web.xml在哪啊?谢谢!
    SQL Server数据的导入导出
    MySQL命令行导出数据库
    VS2010数据库连接问题
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/11041155.html
Copyright © 2011-2022 走看看