码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-08-08 12:02:49      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:creat   rac   员工   默认   公司   有一个   字符   def   width   

(一)引言

  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程序设计(六)—— 存储函数&存储过程

标签:creat   rac   员工   默认   公司   有一个   字符   def   width   

原文地址:https://www.cnblogs.com/wffrzh/p/9441762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!