Oracle 函数(function): 就是返回一个特定值的代码块,可以直接在查询语句中使用。
使用场景:
1、在一个查询字段中要显示特定格式的值(例如:将用户的所有电话号码以逗号分割拼接在一起)
2、在查询结果中要显示统计结果(总金额、总数量、平均值...),而又不要分组时
语法来源:http://docs.oracle.com/cd/B19306_01/server.102/b14200/img_text/create_function.htm
语法: CREATE [ OR REPLACE ] FUNCTION [ schema. ]function [ (argument [ IN | OUT | IN OUT ] [ NOCOPY ] datatype [, argument [ IN | OUT | IN OUT ] [ NOCOPY ] datatype ]... ) ] RETURN datatype [ { invoker_rights_clause | DETERMINISTIC | parallel_enable_clause } [ invoker_rights_clause | DETERMINISTIC | parallel_enable_clause ]... ] { { AGGREGATE | PIPELINED } USING [ schema. ]implementation_type | [ PIPELINED ] { IS | AS } { pl/sql_function_body | call_spec } } ;
例子1: 根据订单号获取订单总金额,假设订单明细表中有如下字段: 订单号(order_no)、商品编号、数量(number)、价格(price) --in标识参数为输入参数 create or replace function fn_get_amount(order_no in varchar2) return number is amount number(6, 2); begin select sum(oi.number * oi.price) into amount from order_item oi where oi.order_no = order_no; return(amount); --此处括号可以省略以空格分割,return amount; end fn_get_amount; --测试 select fn_get_amount(3525) from dual;
例子2: --out标识参数为输出参数 根据订单号获取订单总金额和总数量,因为函数只能返回一个值,所以可以用输出参数 create or replace function fn_get_amount(order_no in varchar2, total_num out varchar2) return number is amount number(6, 2); begin select sum(oi.number * oi.price), sum(oi.number) into amount, total_num from order_item oi where oi.order_no = order_no; return amount; end fn_get_amount; --调用测试 declare v_total_num varchar2(20); v_amount number(6, 2); begin v_amount := fn_get_amount(3525, v_total_num); dbms_output.put_line('v_total_num:' || v_deliver_type); dbms_output.put_line('v_amount:' || v_amount); end;
相关推荐
### Oracle Function 返回结果集 #### 知识点概述 在Oracle数据库中,有时我们需要创建一个函数来返回一个结果集(即一系列记录),而非单一值。本文档中的代码示例展示了如何定义一个返回自定义表类型的函数`Ns_...
oracle function.rar
根据提供的信息,我们可以总结出以下有关Oracle Function在实现银行企业账对账中的应用与细节。 ### Oracle Function在银行企业账对账中的应用 #### 1. **Function Get_RevokeRecImport 的实现** 此函数用于处理...
Decrible the functions using in the Oracle, you could use them to program for PL/SQL
Oracle 函数用法 Oracle 函数是Oracle数据库中的一种编程对象,它允许用户定义自己的函数,以便在SQL语句中调用。 Oracle 函数的用法可以分为以下几个方面: 函数调用限制 在 Oracle 中,函数可以在 SQL 语句中被...
oracle-function-执行动态sql(包括DML、DLL、DQL、DCL)
Oracle 函数是数据库管理系统Oracle中的一个重要组成部分,它们是预定义的代码块,用于执行特定的计算或操作。在Oracle SQL中,函数可以嵌入到查询、更新、插入和删除语句中,帮助处理数据并返回单个值。Oracle提供...
在"Oracle的几个Function实例"这个主题中,我们将探讨一些常见的Oracle函数,并通过实际示例来理解它们的用法。 1. ** NVL 函数**: NVL函数用于处理空值(NULL)。如果一个字段的值为NULL,NVL函数会将其替换为你...
本资料“oracle-function--api.zip”包含了Oracle数据库中的一些核心API和SQL函数,特别是针对字符串、日期和数字类型的处理,对于Oracle开发人员来说极具参考价值。 一、Oracle SQL API Oracle SQL API是Oracle...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。这份"ORACLE函数大全"文档无疑为学习和使用Oracle数据库的用户提供了宝贵的资源。下面,我们将深入探讨Oracle函数...
execute immediate str_sql into tabtcn; --动态执行DDL语句
在IT领域,尤其是在数据库管理与开发中,Oracle Function扮演着至关重要的角色。它们是数据库编程中的核心组件,允许用户创建可重用的代码块来执行特定任务并返回结果。本文将深入探讨Oracle自定义函数的概念、语法...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的内置函数使得数据处理变得更为便捷。JDBC(Java Database Connectivity)则是Java编程语言与各种数据库交互的桥梁,它提供了标准的API来执行SQL...
在Oracle数据库中,`NO_DATA_FOUND`异常是当你执行一个SQL查询时,没有找到匹配的记录时抛出的。这个异常通常与PL/SQL编程有关,因为SQL查询在PL/SQL块(如游标、存储过程或函数)中运行。在处理`NO_DATA_FOUND`异常...
Oracle pl/SQL 优化 华为内部资料
10. **Oracle Function**:Oracle提供了许多内置函数,如TO_DATE, TO_CHAR, NVL等,用于数据转换和处理。 11. **LOAD, UNLOAD指令**:用于导入和导出数据,通常使用SQL*Loader(LOAD)和Export/Import utilities...
Oracle SQL 函数是数据库管理中不可或缺的一部分,它们用于处理和操作数据,提供了一种强大的工具集来执行各种计算、转换和数据提取任务。在Oracle 8i版本中,SQL内置函数涉及了数字格式化和日期格式化等多个方面。 ...
这可以通过创建和应用`PASSWORD_VERIFY_FUNCTION`来实现。`PASSWORD_VERIFY_FUNCTION`允许我们自定义一个PL/SQL函数,该函数将在用户尝试更改密码时进行验证,确保新密码满足预设的复杂度规则。以下是在Oracle 11g ...