oracle 存储过程、函数和触发器用法实例详解


本文整理自网络,侵删。

本文实例讲述了oracle 存储过程、函数和触发器用法。分享给大家供大家参考,具体如下:

一、存储过程和存储函数

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

创建存储过程

用CREATE PROCEDURE命令建立存储过程。

语法:

create [or replace] procedure 过程名(参数列表)
as
PLSQL子程序体;
--给指定员工涨工资
create procedure addSal(empid in number)
as
  psal emp.sal%type;
begin
  select sal into psal from emp where empno=empid;
  update emp set sal = sal * 1.1 where empno=empid;
  dbms_output.put_line(empid || '涨工资前' || psal || '涨工资后' || (psal * 1.1));
end;

调用存储过程

--方法一
begin
addSal(7369);
end;
--方法二
exec addSal(7369);

存储函数

函数为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个return子句,用于返回函数值。函数说明要指定函数名,结果值的类型,以及参数类型等。
创建语法:

CREATE [OR REPLACE] FUNCTION 函数名 (参数列表)
RETURN 函数值类型
AS
PLSQL子程序体;

--查询指定员工的年收入
create function queryEmpSal(empid in number)
return number
as
  psal emp.sal%type;
  pcomm emp.comm%type;
begin
  select sal,comm into psal,pcomm from emp where empno=empid;
  return (psal*12) + nvl(pcomm,0);
end;

函数的调用

declare
 psal number;
begin
 psal:=queryEmpSal(7369);
 dbms_output.put_line(psal);
end;

begin
 dbms_output.put_line(queryEmpSal(7369));
end;

过程和函数中的IN和OUT

一般来讲,过程和函数的区别在于函数可以有一个返回值,而过程没有返回值。
但过程和函数都可以通过out指定一个或多个输出参数。我们可以利用out参数,在过程和函数中实现返回多个值。
什么时候用存储过程或函数?
原则:如果只有一个返回值,用存储函数,否则,就用存储过程。

阅读剩余部分

相关阅读 >>

oracle正则表达式使用介绍

oracle数据库中的级联查询、级联删除、级联更新操作教程

c#实现的操作oracle通用类

oracle set和reset的使用教程案例

详解oracle查询中over (partition by ..)用法

oracle数据库产重启服务和监听程序命令介绍

sqlplus 命令登录 oracle数据库的多种方法

教你使用python连接oracle

oracle如何替换字符串?

oracle case when 语句的用法详解

更多相关阅读请进入《oracle》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...