`
iswift
  • 浏览: 189992 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle Function

阅读更多

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 Function 返回结果集 #### 知识点概述 在Oracle数据库中,有时我们需要创建一个函数来返回一个结果集(即一系列记录),而非单一值。本文档中的代码示例展示了如何定义一个返回自定义表类型的函数`Ns_...

    oracle function.rar

    oracle function.rar

    oracle function 实现七种银行企业帐对帐

    根据提供的信息,我们可以总结出以下有关Oracle Function在实现银行企业账对账中的应用与细节。 ### Oracle Function在银行企业账对账中的应用 #### 1. **Function Get_RevokeRecImport 的实现** 此函数用于处理...

    Oracle Function Collection

    Decrible the functions using in the Oracle, you could use them to program for PL/SQL

    oracle_function用法

    Oracle 函数用法 Oracle 函数是Oracle数据库中的一种编程对象,它允许用户定义自己的函数,以便在SQL语句中调用。 Oracle 函数的用法可以分为以下几个方面: 函数调用限制 在 Oracle 中,函数可以在 SQL 语句中被...

    oracle-function-执行动态sql(包括DML、DLL、DQL、DCL)

    oracle-function-执行动态sql(包括DML、DLL、DQL、DCL)

    oracle function

    Oracle 函数是数据库管理系统Oracle中的一个重要组成部分,它们是预定义的代码块,用于执行特定的计算或操作。在Oracle SQL中,函数可以嵌入到查询、更新、插入和删除语句中,帮助处理数据并返回单个值。Oracle提供...

    Oracle的几个Function实例

    在"Oracle的几个Function实例"这个主题中,我们将探讨一些常见的Oracle函数,并通过实际示例来理解它们的用法。 1. ** NVL 函数**: NVL函数用于处理空值(NULL)。如果一个字段的值为NULL,NVL函数会将其替换为你...

    oracle-function--api.zip_oracle_oracle API_oracle sql api

    本资料“oracle-function--api.zip”包含了Oracle数据库中的一些核心API和SQL函数,特别是针对字符串、日期和数字类型的处理,对于Oracle开发人员来说极具参考价值。 一、Oracle SQL API Oracle SQL API是Oracle...

    ORACLE函数大全

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。这份"ORACLE函数大全"文档无疑为学习和使用Oracle数据库的用户提供了宝贵的资源。下面,我们将深入探讨Oracle函数...

    oracle-function-执行动态sql

    execute immediate str_sql into tabtcn; --动态执行DDL语句

    Oracle_function

    在IT领域,尤其是在数据库管理与开发中,Oracle Function扮演着至关重要的角色。它们是数据库编程中的核心组件,允许用户创建可重用的代码块来执行特定任务并返回结果。本文将深入探讨Oracle自定义函数的概念、语法...

    Oracle函数_JDBC常用写法

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的内置函数使得数据处理变得更为便捷。JDBC(Java Database Connectivity)则是Java编程语言与各种数据库交互的桥梁,它提供了标准的API来执行SQL...

    ORACLE NO_DATA_FOUND的三种处理办法

    在Oracle数据库中,`NO_DATA_FOUND`异常是当你执行一个SQL查询时,没有找到匹配的记录时抛出的。这个异常通常与PL/SQL编程有关,因为SQL查询在PL/SQL块(如游标、存储过程或函数)中运行。在处理`NO_DATA_FOUND`异常...

    Oracle pl/SQL 优化 华为

    Oracle pl/SQL 优化 华为内部资料

    oracle SQL讲义

    10. **Oracle Function**:Oracle提供了许多内置函数,如TO_DATE, TO_CHAR, NVL等,用于数据转换和处理。 11. **LOAD, UNLOAD指令**:用于导入和导出数据,通常使用SQL*Loader(LOAD)和Export/Import utilities...

    Oracle SQL function.ppt

    Oracle SQL 函数是数据库管理中不可或缺的一部分,它们用于处理和操作数据,提供了一种强大的工具集来执行各种计算、转换和数据提取任务。在Oracle 8i版本中,SQL内置函数涉及了数字格式化和日期格式化等多个方面。 ...

    Oracle 11gR2创建PASSWORD_VERIFY_FUNCTION对应密码复杂度验证函数步骤.doc

    这可以通过创建和应用`PASSWORD_VERIFY_FUNCTION`来实现。`PASSWORD_VERIFY_FUNCTION`允许我们自定义一个PL/SQL函数,该函数将在用户尝试更改密码时进行验证,确保新密码满足预设的复杂度规则。以下是在Oracle 11g ...

Global site tag (gtag.js) - Google Analytics