日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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;

總結

以上是生活随笔為你收集整理的oracle function详解,Oracle函数用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。