`
mazhongjia
  • 浏览: 26210 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

自定义聚合函数

 
阅读更多
create or replace type string_sum_obj as object (  
--聚合函数的实质就是一个对象  
    sum_string varchar2(4000),  
    static function ODCIAggregateInitialize(v_self in out string_sum_obj) return number,  
    --对象初始化  
    member function ODCIAggregateIterate(self in out string_sum_obj, value in varchar2) return number,  
    --聚合函数的迭代方法(这是最重要的方法)  
    member function ODCIAggregateMerge(self in out string_sum_obj, v_next in string_sum_obj) return number,  
    --当查询语句并行运行时,才会使用该方法,可将多个并行运行的查询结果聚合  
      
    member function ODCIAggregateTerminate(self in string_sum_obj, return_value out varchar2 ,v_flags in number) return number  
    --终止聚集函数的处理,返回聚集函数处理的结果.  
)  
/  
create or replace type body string_sum_obj is  
    static function ODCIAggregateInitialize(v_self in out string_sum_obj) return number is  
    begin  
        v_self := string_sum_obj(null);  
        return ODCICONST.Success;  
    end;  
    member function ODCIAggregateIterate(self in out string_sum_obj, value in varchar2) return number is  
    begin  
         /* 连接 */    
         self.sum_string := self.sum_string || value;  
         return ODCICONST.Success;  
         /* 最大值 */  
         if self.sum_string<value then  
             self.sum_string:=value;  
         end if;  
         /* 最小值 */  
         if self.sum_string>value then  
      self.sum_string:=value;           
         end if;  
           
         return ODCICONST.Success;  
    end;  
    member function ODCIAggregateMerge(self in out string_sum_obj, v_next in string_sum_obj) return number is  
    begin  
         /* 连接 */    
         self.sum_string := self.sum_string || v_next.sum_string;  
         return ODCICONST.Success;  
         /* 最大值 */  
         if self.sum_string<v_next.sum_string then  
             self.sum_string:=v_next.sum_string;  
         end if;
         /* 最小值 */  
         if self.sum_string>v_next.sum_string then  
             self.sum_string:=v_next.sum_string;           
         end if;  
           
         return ODCICONST.Success;  
    end;  
    member function ODCIAggregateTerminate(self in string_sum_obj, return_value out varchar2 ,v_flags in number) return number is  
    begin  
         return_value:= self.sum_string;  
         return ODCICONST.Success;  
    end;  
end;  
/  
--建立函数
create or replace function ConnStrSum(value Varchar2) return Varchar2  
    parallel_enable aggregate using string_sum_obj;

 

分享到:
评论

相关推荐

    Oracle自定义聚合函数-分析函数

    Oracle 自定义聚合函数-分析函数 Oracle 自定义聚合函数是一种强大且灵活的功能,允许用户根据自己的需求创建自定义的聚合函数。聚合函数是一种特殊的函数,它可以对一组数据进行处理和计算,并返回一个结果。 ...

    自定义聚合函数:用户定义的聚合函数——评估SQL Server 2005中的新功能.pdf

    第一个例子是构建一个自定义聚合函数,用于连接并返回每个客户的订单ID列表,这些ID按顺序以逗号分隔。第二个任务是聚合与每个客户相关的不同员工ID。这两个任务演示了如何利用UDA解决SQL Server内置函数无法直接...

    SqlServer自定义多参数聚合函数实例代码

    然而,SQL Server的标准内置聚合函数可能无法满足所有复杂的数据处理需求,这时我们就需要自定义聚合函数。标题提到的"SqlServer自定义多参数聚合函数实例代码"就是针对这种情况提供的一种解决方案。 自定义聚合...

    Oracle10g自定义聚合函数(字符串拼接)

    * 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的...

    Sqlserver 2014 之 自定义字符串聚合函数

    例如,文件“String_agg.cs”很可能包含了创建自定义聚合函数的C#代码。在SQL Server中,我们可以使用CLR(Common Language Runtime)集成来编写UDAs,这允许使用.NET Framework的任何语言(如C#或VB.NET)来创建...

    SQLServer自定义字符串聚合函数DLL文件(可直接使用)

    http://yufeng521000.iteye.com/blog/2076607; 根据这篇BOLG的函数编译的DLL,方便大家直接使用; 里面有两个DLL分别是NET3.5,以及NET4.0,下载后根据BOLG以及数据库版本选择对应的DLL使用;

    使用IDEA编写SparkSql自定义聚合函数——强类型Dataset(求平均值)

    "avg_age")// 加载数据val jsonDF: DataFrame = spark.read.json("src/main/resources/data.json")// 定义数据集val userDS: Dataset[UserBean] = jsonDF.as[UserBean]// 运行自定义聚合函数,计算平均年龄val ...

    SqlServer自定义字符聚合

    标题“SqlSserver自定义字符聚合”所指向的知识点主要是关于如何在SQL Server中创建和使用自定义聚合函数,特别是在处理字符串数据时的特殊需求。自定义字符聚合允许开发者根据业务需求定制特定的聚合逻辑,比如实现...

    Python自定义聚合函数merge与transform区别详解

    1.自定义聚合函数,结合agg使用 2. 同时使用多个聚合函数 3. 指定某一列使用某些聚合函数 4.merge与transform使用 import pandas as pd import numpy as np np.random.seed(1) dict_data = { 'k1': ['a', 'b', ...

    [] - 2022-07-18 60种特征工程操作:使用自定义聚合函数.pdf

    kaggle竞赛宝典,机器学习,人工智能咨询,kaggle竞赛宝典,机器学习,人工智能咨询kaggle竞赛宝典,机器学习,人工智能咨询kaggle竞赛宝典,机器学习,人工智能咨询kaggle竞赛宝典,机器学习,人工智能咨询kaggle...

    C#扩展SQLServer 2005 字符串聚合函数

    创建自定义聚合函数的步骤如下: 1. **设计C#类**:首先,需要在C#中编写一个类,该类需要继承`System.Data.SqlTypes.SqlAggregate`基类,并实现必要的方法,如`Accumulate()`、`Terminate()`和`GetResult()`。这些...

    自定义字符串聚合函数

    sql server 的聚合函数如 sum() count() 等只能对数字类型的数据进行聚合, 而对于字符串 却是不能的,朋友从网上找了相似的案例 经修改后 做了一下总结, 希望对大家有用!!

    【SparkSql篇02】SparkSql之自定义UDF和UDAF函数1

    例如,我们可能需要计算 `price` 列的平均值,而内置的 `avg()` 函数无法满足特定需求时,可以自定义聚合函数。 1. **创建自定义聚合函数** 自定义聚合函数需要继承 `UserDefinedAggregateFunction` 类。这个类...

    SQL CLR聚合函数在环境质量业务数据计算中的应用.pdf

    SQL CLR聚合函数是基于SQL Server 2005引入的SQL CLR编程技术开发的自定义聚合函数。这项技术允许开发者使用.NET框架编程语言(如C#或***)编写聚合逻辑,并在SQL Server中以CLR函数的形式进行部署和执行。这种聚合...

    类似于wmsys.wm_concat的自定义函数clob版

    创建自定义聚合函数的步骤大致如下: 1. **创建类型**:首先,你需要创建一个PL/SQL记录类型,该类型可以存储你要聚合的列的数据。 2. **创建聚合状态类型**:这是一个PL/SQL类型的变量,用于在聚合过程中存储中间...

    sql自定义函数 sql自定义函数

    4. **聚合函数(Aggregate Function)**:对一组值进行操作并返回单一结果,如SUM、AVG、COUNT等。 5. **窗口函数(Window Function)**:在结果集的一组行(窗口)上执行计算,例如RANK、LEAD、LAG等。 ### 二、...

    嵌入式数据库简介-SQLite

    SQLite介绍 SQLite的发展 SQLite的优势 SQLite的缺憾 SQLite...自定义聚合函数 自定义排序函数 PERL接口 SQLite数据库在ASTRAL中的应用 SQLite在多级关联中的应用 SQLite在IPIS中的应用 ...

    SQL自定义函数讲解

    SQL函数主要分为三类:系统函数、用户自定义函数(UDF)和聚合函数。系统函数是SQL服务器预先定义好的,如数学函数、日期和时间函数、字符串函数等,它们提供了一种标准的方式来处理特定的数据类型或执行特定的操作...

Global site tag (gtag.js) - Google Analytics