应用场景:
权限管理:同一功能对同一用户有多个不同权限设置(1-允许/0-默认/-1禁用),取组合后的权限值。
--聚合函数就是一个对象
create or replace type permission_sign_object as object (
--对象变量
permission_sign number(1),
--对象初始化
static function ODCIAggregateInitialize(v_self in out permission_sign_object) return number,
--聚合函数的迭代方法
member function ODCIAggregateIterate(self in out permission_sign_object, value in number) return number,
--当查询语句并行运行时,才会使用该方法,可将多个并行运行的查询结果聚合
member function ODCIAggregateMerge(self in out permission_sign_object, v_next in permission_sign_object) return number,
--终止聚集函数的处理,返回聚集函数处理的结果
Oracle 自带的wmsys.wm_concat 函数是有长度限制的。然而需求是在不断变化,当自带的东西不能适应我们需求的时候,就需要发挥我们自己的智慧去扩展。
create or replace TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR clob, STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im, P1 IN VARCHAR2) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im, SCTX2 IN zh_concat_im) RETURN NUMBER ); / create or replace TYPE BODY zh_concat_im IS STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im) RETURN NUMBER IS BEGIN SCTX := zh_concat_im(NULL) ; RETURN ODCICONST.SUCCESS; END; MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im, P1 IN VARCHAR2) RETURN NUMBER IS BEGIN IF(CURR_STR IS NOT NULL) THEN CURR_STR := CURR_STR || ',' || P1; ELSE CURR_STR := P1; END IF; RETURN ODCICONST.SUCCESS; END; MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER IS BEGIN RETURNVALUE := CURR_STR ; RETURN ODCICONST.SUCCESS; END; MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im, SCTX2 IN zh_concat_im) RETURN NUMBER IS BEGIN IF(SCTX2.CURR_STR IS NOT NULL) THEN SELF.CURR_STR := SELF.CURR_STR || ',' || SCTX2.CURR_STR ; END IF; RETURN ODCICONST.SUCCESS; END; END; / 函数: create or replace FUNCTION zh_concat(P1 VARCHAR2) RETURN VARCHAR2 AGGREGATE USING zh_concat_im ;
相关推荐
在Oracle数据库中,函数可以分为几大类,包括内置函数、数学函数、字符串函数、日期时间函数、转换函数、系统信息函数、聚合函数以及自定义函数等。以下将对这些函数进行详细讲解: 1. **内置函数**:这是Oracle...
5. **聚合函数** - 两者的`COUNT()`, `SUM()`, `AVG()`, `MIN()`, `MAX()`函数作用相同,用于对一组值进行计算。 - SQL Server独有的`GROUPING_ID()`用于确定分组级别,Oracle则使用`RANK()`, `DENSE_RANK()`, `...
还有聚合函数如SUM、AVG、COUNT等用于统计分析。 通过学习这些内容,你可以掌握如何利用PL_SQL进行高效的数据查询和更新,编写复杂的业务逻辑,以及如何利用Oracle的丰富函数进行数据处理。对于数据库管理员、开发...
本示例将深入讲解如何利用聚合函数SUM来汇总销售额,这是数据分析和报告生成的关键步骤。在C#中,我们通常会结合ADO.NET或者Entity Framework等ORM框架与SQL Server、MySQL、Oracle等数据库系统进行交互。 首先,让...
8. **聚合函数** - `COUNT()`: 计算行数。 - `SUM(column)`: 求列的总和。 - `AVG(column)`: 计算列的平均值。 - `MAX(column)`, `MIN(column)`: 找到列的最大值和最小值。 9. **连接和分组函数** - `JOIN`: ...
2. **高级查询**:深入讲解子查询、集合操作、窗口函数、分组和聚合函数等高级查询技术,以实现复杂的数据分析和报表生成。 3. **索引和优化**:讨论如何创建和管理索引,以提高查询性能。还会涵盖SQL优化器的工作...
从提供的文件名称来看,"oracle分析函数.doc"很可能是对Oracle分析函数的详细讲解,涵盖各种函数的用法和实例;"2.Oracle_9i10g_PLSQL编程详细(350页).pdf"可能是一部全面介绍PL/SQL编程的教程,覆盖了从基础到高级...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的SQL功能,包括聚合函数SUM。SUM函数用于对指定列的数据进行求和,常用于统计分析。在Oracle中,SUM函数可以结合CASE WHEN语句,使得条件求和变得...
在Oracle中,SQL不仅用于基础的CRUD(创建、读取、更新、删除)操作,还支持复杂的查询和联接,如子查询、联接查询、分组和聚合函数、窗口函数等。在提供的资料中,你可以找到SQL基本语法的学习材料和练习题,这些将...
包括基本的查询构造、数据过滤、排序、分组、聚合函数以及如何处理日期和时间等。 学习这些官方文档可以帮助开发者深入理解Oracle SQL的全貌,有效编写高效的查询,设计和实施复杂的数据库解决方案。无论是初学者...
6. 分组函数:解释了SQL中的聚合函数,如COUNT、SUM、AVG、MAX、MIN等,用于对数据集进行分组和汇总。 7. 多表查询:涉及SQL中的JOIN操作,包括内连接、左连接、右连接等,用于查询多个表中的数据。 8. 子查询:...
- **聚合函数**:介绍SUM、AVG、MAX、MIN等聚合函数的使用方法。 #### 五、单行函数 - **字符串函数**:探讨如何使用TRIM、CONCAT等函数处理字符串数据。 - **数值函数**:教授使用ROUND、MOD等函数进行数值计算的...
- **分组函数**:讲解如何使用聚合函数(如SUM、AVG、MAX、MIN、COUNT)对数据进行汇总分析,以及GROUP BY和HAVING子句的使用方法。 - **多表查询**:学习如何通过JOIN语句实现多张表之间的数据关联查询,包括内...
同时,还会涉及子查询、连接查询、聚合函数及分组等高级用法。 存储过程是预编译的SQL语句集合,它们可以封装复杂的业务逻辑并提高执行效率。在Oracle中,你可以创建、修改和删除存储过程,通过参数传递数据,返回...
还会讲解Oracle数据库的架构,如服务器进程、后台进程和数据文件等,以及如何创建和管理数据库实例。 2. **PLSQL基础.ppt** PL/SQL是Oracle特有的编程语言,用于处理SQL查询和事务。这个PPT将涵盖PL/SQL的基础...
在查询和SQL语言部分,手册会详细解析SQL的语法和使用技巧,如SELECT语句、联接操作、子查询、聚合函数以及高级查询技术。这些知识对于开发者来说至关重要,能够帮助他们快速有效地获取和处理数据。 Oracle9i支持PL...
此外,还会涉及到更高级的SQL概念,如子查询、联接(JOIN)和聚合函数(如COUNT、SUM、AVG等)。 其次,"MLDN魔乐科技JAVA培训_Oracle课堂2_SQLPlusw操作.rar"这部分内容将详细介绍Oracle提供的命令行工具SQL*Plus...
- SQL高级特性:如JOIN操作、子查询、聚合函数、窗口函数等。 4. **表结构与数据类型** - 表的创建与修改:学习CREATE TABLE语句,理解不同数据类型,如VARCHAR2、NUMBER、DATE等。 - 约束与索引:认识NOT NULL...