参看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;