PL/SQL程序设计—— 存储函数&存储过程

Posted 秋风de领域

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL程序设计—— 存储函数&存储过程相关的知识,希望对你有一定的参考价值。

(一)引言

  ORACLE提供可以吧PL/SQL程序存储在数据库中,并可以在任何地方来运行它,这样就叫做存储过程或函数。过程和函数统称为PL/SQL子程序,它们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据。

(二)创建函数

1、建立内嵌函数

语法:

2、不带参数的函数

—— 函数的helloworld:返回一个"helloworld"字符串

调用这个函数

方法一:

方法二:

3、带参数的函数

运行:

 方法一:

方法二:

 

—— 创建一个存储函数,返回系统时间

—— 定义一个函数: 获取给定部门的工资总和, 要求:部门号定义为参数, 工资总额定义为返回值.

4、 OUT 型的参数:

因为函数只能有一个返回值, PL/SQL 程序可以通过 OUT 型的参数实现有多个返回值

——  要求: 定义一个函数: 获取给定部门的工资总和 和 该部门的员工总数(定义为 OUT 类型的参数).

要求: 部门号定义为参数, 工资总额定义为返回值.

 

运行:

在CREATE OR REPLACEFUNCTION语句中声明函数参数时可以使用 DEFAULT关键字为输入参数制定默认值

 

(三)存储过程

  在ORACLE SERVER上建立存储过程,可以被多个应用程序调用,可以向存储过程传递参数,也可以小存储过程传回参数

1、建立存储过程

语法:

 

 —— 定义一个存储过程: 获取给定部门的工资总和(通过 out 参数), 要求:部门号和工资总额定义为参数

—— 自定义一个存储过程完成以下操作: 

对给定部门(作为输入参数)的员工进行加薪操作, 若其到公司的时间在 (? , 95) 期间, 为其加薪 %5
[95 , 98) %3
[98, ?) %1
得到以下返回结果: 为此次加薪公司每月需要额外付出多少成本(定义一个 OUT 型的输出参数).

 

 

以上是关于PL/SQL程序设计—— 存储函数&存储过程的主要内容,如果未能解决你的问题,请参考以下文章

Oracle --- 存储过程函数包游标触发器

Oracle --- 存储过程函数包游标触发器

PL-SQL 存储函数和存储过程

PL/SQL轻量版——存储函数/存储过程

pl/sql 存储函数 ora-01002 无序获取 SIMPLE

oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)