- 存储过程和存储函数
- 指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。
- 创建存储过程:
- 用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
RedHat Linux上Oracle 11g从oradata恢复数据分布式数据库概念相关资讯 Oracle入门教程
- 使用SQLT来构建Oracle测试用例 (08/28/2014 06:17:41)
- Oracle AUTOTRACE 统计信息 (02/18/2013 08:25:40)
- Linux Oracle服务启动&停止脚本与 (12/16/2012 14:42:37)
| - Oracle入门教程:把表和索引放在不 (07/13/2013 11:21:40)
- Oracle直接路径加载--append的深度 (02/07/2013 08:26:36)
- Oracle Connect By用法 (12/16/2012 13:36:10)
|
本文评论 查看全部评论 (0)