oracle function详解,Oracle函数用法详解

本文概述

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

在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;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle是一种常用的关系型数据库管理系统,在数据处理过程中有许多常用的函数可以提供快速和高效的数据查询和处理。以下是一些常见的Oracle函数的详细说明: 1. 字符串函数Oracle提供了许多字符串函数,如CONCAT、SUBSTR、INSTR、UPPER、LOWER等。这些函数允许用户对字符串进行拼接、截取、查找和大小写转换等操作。 2. 数字函数Oracle提供了各种数字函数,如ROUND、TRUNC、CEIL、FLOOR等。这些函数可用于对数字进行舍入、截取、向上取整和向下取整等运算。 3. 日期函数Oracle提供了日期和时间相关的函数,如SYSDATE、ADD_MONTHS、EXTRACT等。这些函数可用于获取当前日期和时间、计算日期的差异、提取日期的部分等操作。 4. 聚合函数Oracle提供了一组强大的聚合函数,如SUM、AVG、MIN、MAX、COUNT等。这些函数可用于进行数据汇总和统计,例如计算总和、平均值、最小值、最大值和计数等。 5. 条件函数Oracle提供了一些条件函数,如CASE、NVL、DECODE等。这些函数可用于根据条件对数据进行转换和处理,例如根据条件返回不同的值、处理空值等。 6. 转换函数Oracle提供了一些转换函数,如TO_CHAR、TO_NUMBER、TO_DATE等。这些函数可用于在不同的数据类型之间进行转换,例如将字符串转换为数字、将日期转换为字符串等。 7. 排序函数Oracle提供了一些排序函数,如ORDER BY、GROUP BY、HAVING等。这些函数可用于对检索出的数据进行排序和分组,例如按照特定列进行升序或降序排列。 以上是一些常见的Oracle函数的详细说明。了解和掌握这些函数可以帮助用户快速和准确地处理和查询数据,提高数据库的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值