首页 > 数据库 >plsql函数

plsql函数

时间:2024-09-19 11:21:53浏览次数:3  
标签:返回 RETURN plsql -- 函数 NUMBER name

目录

1.什么是函数

2. 函数的基本语法

3.函数的使用场景

4.举例说明

示例 1:加法函数

示例 2:计算税额的函数

示例 3:返回员工全名的函数

示例 4:带有异常处理的函数

提示:一定要分清函数和存储过程的区别

1.什么是函数

函数(Function) 是一种子程序,用于封装一段逻辑,并返回一个结果值。

2. 函数的基本语法

CREATE [OR REPLACE] FUNCTION function_name
   (parameter1 IN datatype, parameter2 IN datatype, ...)
RETURN return_datatype  -- 函数必须有返回值的数据类型
IS
   -- 可选的局部变量声明部分
BEGIN
   -- 逻辑部分,计算或处理输入参数
   RETURN return_value;  -- 函数必须有 RETURN 语句返回结果
EXCEPTION
   -- 可选的异常处理部分
   WHEN exception_name THEN
      -- 异常处理逻辑
END function_name;
  • function_name:函数的名称,用来调用函数时使用。
  • parameter1, parameter2, ...:函数的输入参数,所有参数都是 IN 类型,只能读取,不能修改。
  • RETURN return_datatype:函数必须返回一个值,return_datatype 指定返回值的类型(如 NUMBERVARCHAR2)。
  • RETURN 语句:函数体内必须有 RETURN 语句,用来返回结果。
  • 异常处理(可选):可以处理运行过程中可能出现的错误。

3.函数的使用场景

  • 数据处理:将输入参数处理并返回结果(例如数学运算、字符串操作等)。
  • 数据转换:将数据格式进行转换(如日期格式、货币单位等)。
  • 查询优化:可以在 SQL 语句中复用函数,避免重复逻辑

4.举例说明

示例 1:加法函数

CREATE OR REPLACE FUNCTION add_numbers(p_num1 IN NUMBER, p_num2 IN NUMBER)
RETURN NUMBER  -- 函数返回一个 NUMBER 类型的结果
IS
BEGIN
    RETURN p_num1 + p_num2;  -- 返回 p_num1 和 p_num2 的和
END;


--调用方式
SELECT add_numbers(10, 20) FROM dual;  -- 返回 30

示例 2:计算税额的函数

CREATE OR REPLACE FUNCTION calculate_tax(p_price IN NUMBER)
RETURN NUMBER
IS
    v_tax NUMBER;
BEGIN
    v_tax := p_price * 0.10;  -- 计算税率为 10%
    RETURN v_tax;  -- 返回计算出的税额
END;

--调用方式
SELECT product_name, calculate_tax(price) AS tax
FROM products;

示例 3:返回员工全名的函数

CREATE OR REPLACE FUNCTION get_full_name(p_first_name IN VARCHAR2, p_last_name IN VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
    RETURN p_first_name || ' ' || p_last_name;  -- 拼接名字和姓氏,并返回全名
END;

--调用方式
SELECT get_full_name('John', 'Doe') FROM dual;  -- 返回 'John Doe'

示例 4:带有异常处理的函数

CREATE OR REPLACE FUNCTION safe_divide(p_num1 IN NUMBER, p_num2 IN NUMBER)
RETURN NUMBER
IS
BEGIN
    IF p_num2 = 0 THEN
        RAISE_APPLICATION_ERROR(-20001, '除数不能为零');  -- 抛出异常
    ELSE
        RETURN p_num1 / p_num2;  -- 返回除法结果
    END IF;
EXCEPTION
    WHEN OTHERS THEN
        RETURN NULL;  -- 处理所有其他异常,并返回 NULL
END;
--调用方式
SELECT safe_divide(10, 0) FROM dual;  -- 返回 NULL,并且输出 '除数不能为零' 错误

标签:返回,RETURN,plsql,--,函数,NUMBER,name
From: https://blog.csdn.net/hjdhxy/article/details/142354588

相关文章

  • C++ 逆向之 main 函数的查找
    在整个程序的逆向分析过程中,寻找main函数是逆向分析过程的第一步,程序的主要逻辑从这里展开。这里面涉及到两个概念:用户入口(UserEntryPoint)和应用程序入口(ApplicationEntryPoint)。用户入口用户入口是开发者编写的用于程序开始的函数。对于大多数C/C++程序而言,这个入......
  • Vue 3中的setup()函数的作用是什么?
    Vue3引入了CompositionAPI,这是一种新的组件编写方式,旨在提供更好的逻辑复用和代码组织。setup()函数是CompositionAPI的入口点,它在组件实例创建之前被调用,并且是响应式系统的上下文。本文将介绍setup()函数的作用,并使用Vue3的setup语法糖提供示例代码。setup()......
  • 深度学习:常用的损失函数的使用和损失函数学习总结
    1.损失函数的概念        损失函数是监督学习中的一个核心概念,用于衡量模型预测的结果与真实值之间的差距。在机器学习模型的训练过程中,损失函数计算预测值与实际标签之间的误差,训练的目标就是通过优化算法(如梯度下降)最小化这个损失函数,从而使模型在给定数据集上的表......
  • 鸿蒙(HarmonyOS)--函数、类的声明和使用
    目录1.函数1.1函数的声明1.2可选参数 1.2.1 参数名?:类型  1.2.2参数名:类型=值 1.3Rest参数 1.4返回类型1.4.1显示返回1.4.2隐示返回1.4.3无返回类型1.5函数的作用域1.5.1全局作用域1.5.2局部作用域1.6函数调用1.7函数类型 1.8 箭头函数/l......
  • C++之move函数的使用
    在C++中,std::move 是一个标准库函数,用于实现“移动语义”(MoveSemantics),这是C++11引入的一个重要特性。std::move 允许你将对象的资源“转移”到另一个对象,从而避免不必要的复制操作,提高效率。什么是 std::move?std::move 是一个类型转换函数,它将其参数转换为右值引......
  • 第七章习题12-用牛顿迭代法求根。方程为一元三次函数,系数a,b,c,d的值依次为1,2,3,4,由
     ......
  • 大项目函数调用详解
    os.path.relpath是什么os.path.relpath是Python中os.path模块的一个函数,用于获取两个路径之间的相对路径。作用:os.path.relpath(path,start)会返回从start目录到path目录的相对路径。如果不指定start,则默认从当前工作目录计算。path:目标路径,表示你想获取相对路径......
  • 《深度学习》PyTorch框架 优化器、激活函数讲解
    目录一、深度学习核心框架的选择    1、TensorFlow        1)概念        2)优缺点    2、PyTorch                1)概念        2)优缺点    3、Keras           ......
  • 《深度学习》PyTorch 常用损失函数原理、用法解析
    目录一、常用损失函数1、CrossEntropyLoss(交叉熵损失)        1)原理    2)流程        3)用法示例2、L1Loss(L1损失/平均绝对误差)    1)原理        2)用法示例3、NLLLoss(负对数似然损失)    1)原理    2)用法示例......
  • 使用回调机制Callback和函数式编程码出优雅结构化代码!拒绝一直写CRUD!!!
    整体回调机制流程如下图所示:1.2回调的结构1.3回调的作用2.回调的实现方式2.1通过接口实现回调java可以通过定义一个回调接口,包含需要回调的方法,然后在业务逻辑中通过传递接口的实现类,触发回调。示例如下://1.定义回调接口interfaceCallback{voidonComplete(Stringres......