PL/SQL程序之存储过程和存储函数

原创 2012年03月21日 18:30:53

存储过程和存储函数
指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。
创建存储过程:
用CREATE PROCEDURE命令建立存储过程和存储函数。
语法:
create [or replace] PROCEDURE 过程名(参数列表) 
AS 
PLSQL子程序体;
注:存储过程一般用于高度安全的系统中

例一:为所有员工涨10%的工资
创建存储过程
create or replace procedure updateSal
as
--plsql程序块
--存储过程不能有declare
create or replace procedure updateSal
as
cursor c1 is select sal,empno from emp;
emp_sal emp.sal%type;
emp_no emp.empno%type;
begin
open c1;
loop
  fetch c1 into emp_sal,emp_no;
  exit when c1%notfound;
  update emp set sal=emp_sal*1.1 where empno=emp_no;
  end loop;
  close c1;
  end;
调用存储过程
方式一:
SQL> begin
  2  updateSal;
  3  end;
  4  /
方式二:
SQL> exec updateSal;
调用完成后手工提交一下
【
Commit语句:结束当前事务, 使当前事务所执行的全部修改永久化。
】

存储函数
函数(Function)为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个RETURN子句,用于返回函数值。函数说明要指定函数名、结果值的类型,以及参数类型等。
建立存储函数的语法:
CREATE [OR REPLACE] FUNCTION 函数名(参数列表) 
 			RETURN  函数值类型
AS
PLSQL子程序体;

例二:获取指定员工的年收入
create or replace function sumSal(emp_no number)--function(参数的值  必须有类型)
--返回值类型
return number--必须有返回值
as
--声明变量
emp_sal emp.sal%type;
emp_comm emp.comm%type;
total emp.sal%type;
begin
  select sal,comm into emp_sal,emp_comm from emp where empno=emp_no;
  total:=emp_sal*12+nvl(emp_comm,0);
  return total;--必须返回  返回值类型一定相同
end;
调用方法
方法一:
SQL> begin
  2  dbms_output.put_line(sumSal(7369));
  3  end;
  4  /
方法二:
declare
v_sal number;
begin
v_sal:=sumSal(7369);
dbms_output.put_line(v_sal);
end;
结果
12777.6


SQL中存储过程和函数的标准写法

之前一直用的存储过程,今天忽然又接触到跑算法获取返回值的问题,想到可以用函数,好久没用过一时忘了怎么写,还要现查,于是就记录下来,顺便连存储过程一块啦。 存储过程: CREATE PROC...
  • u012630420
  • u012630420
  • 2017年03月01日 16:23
  • 1497

PLSQL的存储过程

6.Procedure存储过程语法:CREATE OR REPLACE PROCEDURE procedure_name   [(argument_name [{IN|OUT|IN OUT}] TYP...
  • xiaofanku
  • xiaofanku
  • 2008年02月20日 20:09
  • 7617

PLSQL存储过程及存储函数

1.存储过程与存储函数的区别: 存储过程无返回值,存储函数有返回值。 2.存储过程:demo1: declare    --声明一个记录类型   type emp_record is recor...
  • cpp1781089410
  • cpp1781089410
  • 2016年03月27日 18:02
  • 1937

Oracle的plsql 函数、存储过程

---存储函数 --格式 --函数的声明(有参数的写在小括号里) create or replace function func_name(v_param varchar2) --返回值类型 re...
  • weisg81
  • weisg81
  • 2015年05月16日 23:13
  • 1893

存储过程与PL/SQL基本用法

存储过程的优点: 1.存储过程只在创造的时候进行编译,以后每次执行存储过程都不再需要重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对...
  • cgperfect
  • cgperfect
  • 2015年10月31日 18:12
  • 2742

MySQL 的存储过程 procedure 与 函数 function 的区别和使用方法

存储过程与函数的区别  本质上没区别,执行的本质都一样。   只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。     函数是可以嵌入在sql中使用的,可以在select中调用,而存...
  • xlxxcc
  • xlxxcc
  • 2016年09月09日 13:46
  • 7790

存储过程和函数

什么是存储过程 简单说,存储过程就是一条或多条SQL语句的集合,可视为批文件,但是起作用不仅限于批处理。本文主要讲解如何创建存储过程和存储函数以及变量的使用,如何调用、查看、修改、删除存储过程和存储...
  • zhangyuan19880606
  • zhangyuan19880606
  • 2016年04月22日 14:35
  • 104

MYSQL存储过程和存储函数入门

一、MYSQL储存过程简介: 储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过...
  • ch18255112191
  • ch18255112191
  • 2015年09月08日 17:43
  • 6356

MySQL 存储过程和存储函数示例

以下示例主要用于个人温习使用,因为长时间不谢存储过程或函数自己很容易忘记。     存储函数     1、ZhangFun1 CREATE DEFINER=`wpms_test`@`%` FUNCTI...
  • woshizhangliang999
  • woshizhangliang999
  • 2016年03月24日 16:06
  • 2083

Oracle存储过程与存储函数-慕课网学习笔记

存储过程和存储函数 存储在数据库中供所有用户程序调用的子程序叫做存储过程,存储函数.区别:是否可以通过return返回函数值.存储函数可以通过return返回函数值,而存储过程不可以.由于通过out...
  • javaee_sunny
  • javaee_sunny
  • 2016年10月19日 17:40
  • 1232
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PL/SQL程序之存储过程和存储函数
举报原因:
原因补充:

(最多只允许输入30个字)