oracle function详解,Oracle函数用法详解「建议收藏」

oracle function详解,Oracle函数用法详解「建议收藏」本文概述函数是用于返回单个值的子程序。你必须在调用函数之前声明并定义一个函数。它可以在同一时间声明和定义,也可以在同一块中先声明然后定义。在Oracle中创建函数句法CREATE[ORREPLACE]FUNCTIONfunction_name[(parameter[,parameter])]RETURNreturn_datatypeIS|AS[declaration_sec…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文概述

函数是用于返回单个值的子程序。你必须在调用函数之前声明并定义一个函数。它可以在同一时间声明和定义, 也可以在同一块中先声明然后定义。

在Oracle中创建函数

句法

CREATE [OR REPLACE] FUNCTION function_name

[ (parameter [, parameter]) ]

RETURN return_datatype

IS | AS

[declaration_section]

BEGIN

executable_section

[EXCEPTION

exception_section]

END [function_name];

在创建过程或函数之前, 必须先定义一些参数。这些参数是

IN:这是默认参数。它将值传递给子程序。

OUT:必须指定。它向调用方返回一个值。

IN OUT:必须指定。它将初始值传递给子程序, 并将更新后的值返回给调用者。

Oracle函数示例

让我们看一个创建函数的简单示例。

create or replace function adder(n1 in number, n2 in number)

return number

is

n3 number(8);

begin

n3 :=n1+n2;

return n3;

end;

/

现在编写另一个程序来调用该函数。

DECLARE

n3 number(2);

BEGIN

n3 := adder(11, 22);

dbms_output.put_line(‘Addition is: ‘ || n3);

END;

/

输出

Addition is: 33

Statement processed.

0.05 seconds

另一个Oracle函数示例

让我们以一个示例来演示声明, 定义和调用一个简单的PL / SQL函数, 该函数将计算并返回两个值的最大值。

DECLARE

a number;

b number;

c number;

FUNCTION findMax(x IN number, y IN number)

RETURN number

IS

z number;

BEGIN

IF x > y THEN

z:= x;

ELSE

Z:= y;

END IF;

RETURN z;

END;

BEGIN

a:= 23;

b:= 45;

c := findMax(a, b);

dbms_output.put_line(‘ Maximum of (23, 45): ‘ || c);

END;

/

输出

Maximum of (23, 45): 45

Statement processed.

0.02 seconds

使用表的Oracle函数示例

让我们来一张客户桌。本示例说明了如何创建和调用独立函数。此函数将返回customers表中的CUSTOMERS总数。

创建客户表并在其中有记录。

Customers

Id

Name

Department

Salary

1

alex

web developer

35000

2

ricky

程序开发人员

45000

3

mohan

网页设计师

35000

4

dilshad

数据库管理器

44000

创建函数:

CREATE OR REPLACE FUNCTION totalCustomers

RETURN number IS

total number(2) := 0;

BEGIN

SELECT count(*) into total

FROM customers;

RETURN total;

END;

/

执行完上述代码后, 你将得到以下结果。

Function created.

调用Oracle函数:

DECLARE

c number(2);

BEGIN

c := totalCustomers();

dbms_output.put_line(‘Total no. of Customers: ‘ || c);

END;

/

在SQL提示符下执行上述代码后, 你将获得以下结果。

Total no. of Customers: 4

PL/SQL procedure successfully completed.

Oracle递归函数

你已经知道一个程序或一个子程序可以调用另一个子程序。当子程序调用自身时, 它称为递归调用, 该过程称为递归。

计算数字阶乘的示例

让我们以一个例子来计算数字的阶乘。本示例通过递归调用自身来计算给定数字的阶乘。

DECLARE

num number;

factorial number;

FUNCTION fact(x number)

RETURN number

IS

f number;

BEGIN

IF x=0 THEN

f := 1;

ELSE

f := x * fact(x-1);

END IF;

RETURN f;

END;

BEGIN

num:= 6;

factorial := fact(num);

dbms_output.put_line(‘ Factorial ‘|| num || ‘ is ‘ || factorial);

END;

/

在SQL提示符下执行上述代码后, 将产生以下结果。

Factorial 6 is 720

PL/SQL procedure successfully completed.

Oracle Drop函数

如果要从数据库中删除创建的函数, 则应使用以下语法。

句法:

DROP FUNCTION function_name;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197598.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【单调队列】数据结构之单调队列详解

    【单调队列】数据结构之单调队列详解单调队列1.初步认识单调队列是一个数据结构,并不是STL里面的内容。单调队列为何说单调,因为是队列中的元素始终保持着单增或者单减的特性。(注意始终保持这四个字)简单的sort排序就可以让一个序列有序了,为何又多此一举多出来个单调队列实现类似的功能呢?其实单调队列不只是做到了排序,还可以实现一个功能:在每次加入或者删除元素时都保持序列里的元素有序,即队首元素始终是最小值或者最大值,这个功能非常重要,单调队列我们就是使用的这个功能。举个例子:我们依次加入5个元素,分别为5,8,2,4,1那么我们假

  • Jmeter 安装篇

    Jmeter 安装篇Jmeter安装篇Jmeter的安装其实很简单,网上的资料也很多。这里不多说了,直接上步骤。Step1:安装JDK最好安装1.6版本以上的,如果本地安装了JDK那就查看一下是否配置了环境变量。(Jmeter是用java开发的,它的运行依赖于java环境)有关环境变量的配置,请自行百度。网上图文教程还是非常丰富的。Step2:下载Jmeterhttp://jme

  • 电子计算机主机房国标,中华人民共和国国家标准电子计算机机房设计规范[通俗易懂]

    电子计算机主机房国标,中华人民共和国国家标准电子计算机机房设计规范[通俗易懂]中华人民共和国国家标准电子计算机机房设计规范中华人民共和国国家标准电子计算机机房设计规范GB50174-93(1993年2月17日国家技术监督局、中华人民共和国建设部联合发布1993年9月1日实施)——————————————————————————–第一章总则第1.0.1条为了使电子…

  • 字符串匹配——枚举法[通俗易懂]

    字符串匹配——枚举法[通俗易懂]字符串匹配——枚举法给定主串T和模式串P,返回P在T中首次出现的位置,如果P不存在于T中,返回-1。这样的问题就是字符串匹配问题,这里先给出枚举法的思想。设主串T的长度为n,模式串P的长度为m。主串从0到n-m,每次选取连续的m个字符,跟模式串P的m个字符进行一一比较。伪代码BruteForce(T,P)01fors<-0ton-m02j<-003//check

  • Java 接口

    Java 接口

  • 电脑桌面记事本便签_电脑上的便签软件哪个好用

    电脑桌面记事本便签_电脑上的便签软件哪个好用只不过,作为Windows复杂系统中的一个小组件,便签的功能比较简单:比如,它的提醒功能也就到此为止了,没有更进一步的提醒了,像文字弹窗提醒了、响铃声音提醒了等等。因此,一旦忙起来,记在它上面的待办事

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号