存储过程和存储函数的简单应用举例

原创 2012年03月21日 18:11:29
存储过程和存储函数的简单应用举例
指存储在数据库中的供所有用户程序调用的子程序加存储过程、存储函数

1.创建存储过程
create procedure命令

(1)为所有的员工 涨工资
SQL> create or replace procedure updateSal
  2  as
  3   cursor cl is select sal,empno from emp;
  4   emp_sal emp.sal%type;
  5   emp_no emp.empno%type;
  6  begin
  7      open cl;
  8      loop
  9           fetch cl into emp_sal,emp_no;
 10           exit when cl%notfound;
 11           update emp set sal = emp_sal*1.1 where empno=emp_no;
 12      end loop;
 13      close cl;
 14  end;
 15  /
Procedure created

存储过程的执行为:
SQL> begin
  2  updateSal;
  3  end;
  4  /
PL/SQL procedure successfully completed

也可以这么执行
SQL> exec updateSal;
PL/SQL procedure successfully completed



(2)为指定的员工涨10%的工资
SQL> create or replace procedure updateSal(emp_no number)
  2      as
  3      emp_sal emp.sal%type;
  4      begin
  5  
  6          select sal into emp_sal from emp where empno=emp_no;
  7  
  8          update emp set sal = emp_sal*1.1 where empno=emp_no;
  9     end;
 10  /
 
Procedure created
 
SQL> begin
  2  updateSal(7369);
  3  end;
  4  /
PL/SQL procedure successfully completed
或
SQL> exec updateSal(7369); 
PL/SQL procedure successfully completed

注:存储过程在创建的时候不能写declare声明


存储函数
求某个员工的年薪收入
SQL> create or replace function sumSal(emp_no number) 
  2  return number --必须有返回值的类型	
  3  as
  4  --声明变量
  5  emp_sal emp.sal%type;
  6  emp_comm emp.comm%type;
  7  total emp.sal%type;
  8  begin
  9    select sal,comm into emp_sal,emp_comm from emp where empno=emp_no;
 10    total := emp_sal*12+nvl(emp_comm,0);
 11    return total;-- 返回值的类型必须与返回的类型相同
 12  end;
 13  /
 
Function created
 
SQL> begin
  2  dbms_output.put_line(sumSal(7369));
  3  end;
  4  /
 
11616
PL/SQL procedure successfully completed


注:存储函数在创建的时候必须的几个条件为:
(1)--function声明(参数值必须有类型)  function声明的参数必须有类型
(2) return number --必须有返回值的类型	
(3)return total;--返回值的类型必须与返回的类型相同

建立存储函数的语法:
CREATE [OR REPLACE] FUNCTION 函数名(参数列表) 
 RETURN  函数值类型
AS
PLSQL子程序体;


 

相关文章推荐

简单应用存储过程分页程序

  • 2010年07月27日 10:48
  • 55KB
  • 下载

C#存储过程简单应用

  • 2010年04月26日 19:47
  • 33KB
  • 下载

利用SQL语句创建、修改、执行、删除存储过程(简单应用)

------------------------------------------------------------------------------------------------- --...

简单asp.net 的存储过程应用

  • 2008年09月12日 11:24
  • 2KB
  • 下载

存储过程的简单应用

存储过程的简单应用 存储过程:执行一个任务,该任务包括了一系列的PL SQL语句,存储在数据库中,成为数据库一个对象。效率比较高的,但你创建一个存储过程它会进行一个判断编译的。 ===========...

数据库中事物、存储过程、触发器、索引、临时表 的简单应用

转账问题:     假定钱从A转到B,至少需要两步:     •A的资金减少     •然后B的资金相应增加    create table bank ( cId char(4) primary ...

MySQL 中的自定义函数和存储过程 简单实例

需要说明的是:MySQL中没有表变量, 一般是通过临时表来存贮结果集的。 那么 我们如何取出在储存过程中select出来的结果集呢?如果是其它存储过程中,你可以使用生成的临时表。如果是java程序中...

关于存储过程和函数异常出现和JAVA捕获简单处理方案

1.想法 在调用存储过程时候,如果出现出错,应该在页面弹出异常提示信息,快速定位错误原因, 也应该在存储过程和函数过程中尽可能的捕获概率发生较大的异常情况,并且在客户端页面通知(如果发生的话) 首...

MySQL入门很简单-学习笔记 - 第14章 存储过程和函数

避免编写重复的语句 安全性可控 执行效率高   14.1、创建存储过程和函数 14.1.1、创建存储过程 CREATE PROCEDUREsp_name ([proc_parameter[,...]]...
  • KimSoft
  • KimSoft
  • 2011年09月09日 15:38
  • 5735

Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)

Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包) 一、游标 二、存储过程 三、函数     过程与函数的异同 四、程序包 一、游标  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:存储过程和存储函数的简单应用举例
举报原因:
原因补充:

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