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;
成年人的世界没有那么多的童话,也没有那么多的逆袭。
原文地址:https://www.cnblogs.com/shijinglu2018/p/11041155.html