ITPub博客

首页 > 数据库 > Oracle > Oracle创建存储过程

Oracle创建存储过程

原创 Oracle 作者:zhenghaishu 时间:2014-08-10 13:48:03 0 删除 编辑
Oracle创建存储过程


函数更倾向于处理数据运算,并最终返回处理结果。而存储过程更倾向于数据库操作,并不返回值。

(1)语法
create or replace procedure 存储过程名称 as
begin
存储过程定义
end 存储过程名称;

或者:

create or replace procedure 存储过程名称 as

begin

存储过程定义

end;


(2)最简单的存储过程示例

create or replace procedure test_proc as

begin

commit;

end test_proc;

/

运行后会提示存储过程创建成功。当然,这个存储过程没有具体的功能。


(3)创建存储过程,实现表emp中的每位员工工资增加2倍
对于表emp,如果需要获得有关该表的信息,如表中所有员工的姓名,应该使用自定义函数;如果需要操作表中数据,如更新某列的值,则应该使用存储过程。
更新表emp_copy中列sal值为原来的3倍的存储过程如下所示:
create or replace procedure update_sal as
begin
  update emp_copy set sal = sal * 3;
  commit;
end update_sal;
/
 
查看存储过程信息
col object_name format a15;
col object_type format a15;
col status format a15;
select object_name, object_type, status from user_objects where object_name = upper('update_sal');

OBJECT_NAME    OBJECT_TYPE    STATUS
--------------- --------------- ---------------
UPDATE_SAL    PROCEDURE    VALID

col name format a15;
col type format a15;
col line format 999;
col text format a40;
SQL> select * from user_source where name = upper('update_sal');

NAME        TYPE        LINE TEXT
--------------- --------------- ---- ----------------------------------------
UPDATE_SAL    PROCEDURE       1 procedure update_sal as
UPDATE_SAL    PROCEDURE       2 begin
UPDATE_SAL    PROCEDURE       3   update emp_copy set sal = sal * 3;
UPDATE_SAL    PROCEDURE       4   commit;
UPDATE_SAL    PROCEDURE       5 end update_sal;
 
执行存储过程
方法一:
begin
  update_sal;
end;
/

PL/SQL procedure successfully completed.

方法二:
execute update_sal;

PL/SQL procedure successfully completed.
 
执行完后用“select sal from emp_copy;”验证,发现sal数据都更新为原来的3倍。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29485627/viewspace-1248703/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle行转列函数
请登录后发表评论 登录
全部评论

注册时间:2014-02-14

  • 博文量
    112
  • 访问量
    1057346