`
huze104
  • 浏览: 97544 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

聚集函数----字符串连接

阅读更多
oracle自定义聚集函数接口简介
   a. static function ODCIAggregateInitialize(sctx IN OUTstring_agg_type )    
               return number
   自定义聚集函数初始化设置,从这儿开始一个聚集函数
   b. member function ODCIAggregateIterate(self IN OUT string_agg_type ,value IN varchar2)
               return number
    自定义聚集函数,最主要的步骤,这个函数定义我们的聚集函数具体做什么操作,后面的例子,是取最大值,最小值,平均值,还是做连接操作.self 为当前聚集函数的指针,用来与前面的计算结果进行关联
   c. member function ODCIAggregateMerge (self IN string_agg_type,returnValue OUT  varchar2,flags IN number)
             return number
     用来合并两个聚集函数的两个不同的指针对应的结果,用户合并不同结果结的数据,特别是处理并行(parallel)查询聚集函数的时候.
    d. member function OCDIAggregateTerminate(self IN string_agg_type,returnValue OUT varchar2,flags IN number)
     终止聚集函数的处理,返回聚集函数处理的结果.
字符串连接函数:
第一步:TYPE
CREATE OR REPLACE TYPE T_LINK_STR AS OBJECT (
    STR VARCHAR2(30000),
    STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT T_LINK_STR) RETURN NUMBER,
    MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT T_LINK_STR, VALUE IN VARCHAR2) RETURN NUMBER,
    MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN T_LINK_STR, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER,
    MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT T_LINK_STR, CTX2 IN T_LINK_STR) RETURN NUMBER
    )
第二步:TYPE BODY
CREATE OR REPLACE TYPE BODY T_LINK_STR IS
 
 STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT T_LINK_STR) RETURN NUMBER IS
   BEGIN
     SCTX := T_LINK_STR(NULL);
     RETURN ODCICONST.SUCCESS;
   END;
 
  MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT T_LINK_STR, VALUE IN VARCHAR2) RETURN NUMBER IS
   BEGIN
     SELF.STR := SELF.STR || VALUE||';';
     RETURN ODCICONST.SUCCESS;
   END;
 
  MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN T_LINK_STR, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER IS
   BEGIN
     RETURNVALUE := SELF.STR;
     RETURN ODCICONST.SUCCESS;
   END;
  
   MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT T_LINK_STR, CTX2 IN T_LINK_STR) RETURN NUMBER IS
    BEGIN
      NULL;
      RETURN ODCICONST.SUCCESS;
    END;
END;
 
第三步:FUNCTION
CREATE OR REPLACE FUNCTION STR_SUM(P_STR VARCHAR2) RETURN VARCHAR2
 PARALLEL_ENABLE AGGREGATE USING T_LINK_STR;
 
 
 函数测试:
create table TABLE1 (   ID      VARCHAR2(10),   T_NAME  VARCHAR2(10),   T_VALUE VARCHAR2(10) )

1
 
select t_name ,str_sum(t_value) from table1 group by t_name
结果如下
 
2
分享到:
评论

相关推荐

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

    * 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序

    东软oracle在线期中考试一.docx

    使用 CONCAT 函数可以连接字符串;使用 SUBSTR 函数可以截取字符串的部分字符。 知识点三:联接 Oracle 数据库中的联接用于连接两个或多个表,以便检索相关的数据。例如,使用 LEFT OUTER JOIN 可以从一个表中返回...

    SQL COOKBOOK(压缩1/2)

    第6章 使用字符串 第7章 使用数字 第8章 日期运算 第9章 日期操作 第10章 范围处理 第11章 高级查找 第12章 报表和数据仓库运算 第13章 分层查询 第14章 若干另类目标 …… 附录A 窗口函数补充 ...

    SQL COOKBOOK(压缩2/2)

    第6章 使用字符串 第7章 使用数字 第8章 日期运算 第9章 日期操作 第10章 范围处理 第11章 高级查找 第12章 报表和数据仓库运算 第13章 分层查询 第14章 若干另类目标 …… 附录A 窗口函数补充 ...

    数据库课程梳理——SElECT

    SELECT * / 列名 / 聚集函数(列名)/ 算术表达式 / ‘字符串常量’ / 这里的*号代表全部。 统计函数(聚集函数) 聚集函数只能用于SELECT子句和GROUP BY中的HAVING子句,而不能用于WHERE子句。 函数 说明

    Oracle Database 11g初学者指南--详细书签版

    4.6 函数:字符串函数、数字函数和聚集函数(不是分组) 91 4.6.1 字符串函数 91 4.6.2 数字函数 92 4.6.3 聚集函数 92 4.7 日期函数(格式化的和按时间排列的) 93 4.7.1 日期函数 93 4.7.2 特殊格式的日期数据...

    神通数据库-数据库快速入门.pdf

    置函数主要包括:数学函数、字符串函数、日期时间函数、类型转换函数聚集函数等。 • 支持视图 神通数据库对数据视图提供了完善的支持,从而允许不同的用户或应用程序以不同的方式查看同一数 据。该项功能不仅使数据...

    NHibernate中文帮组文档(2008.11月更新)

    12.5. 聚集函数 12.6. 多态查询 12.7. where子句 12.8. 表达式 12.9. order by子句 12.10. group by子句 12.11. 子查询 12.12. HQL示例 12.13. 小技巧 & 小窍门 13. 条件查询(Criteria Queries) 13.1. 创建一个...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    2009达内SQL学习笔记

    (单引号,引起字符串;双引号,引起别名。起别名有符号,或者区分大小写时,必须用双引号) 多表查询时,可给表起别名。(给列起别名,列<空格>列别名;给表起别名,表<空格>表别名;)。 如:Select first_name ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    4.6 函数:字符串函数、数字函数和聚集函数(不是分组) 4.6.1 字符串函数 4.6.2 数字函数 4.6.3 聚集函数 4.7 日期函数(格式化的和按时间排列的) 4.7.1 日期函数 4.7.2 特殊格式的日期数据类型 4.7.3 嵌套函数 ...

    mysql数据库的基本操作语法

    空字符串“”是不等于null,0也不等于null create table temp( id int not null, name varchar(255) not null default ‘abc’, sex char null ) 上面的table加上了非空约束,也可以用alter来修改或增加非空约束 ...

    MYSQL常用命令大全

    MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5.BLOB TEXT类型,最大长度为65535(2^16-1)个字符...

    《你必须知道的495个C语言问题》

    书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...

    MySQL命令大全

    MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5.BLOB TEXT类型,最大长度为(2^16-1)个字符。 6...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例074 将字符串的每个字符进行倒序输出 94 实例075 获取字符串中汉字的个数 94 实例076 批量替换某一类字符串 95 实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 ...

Global site tag (gtag.js) - Google Analytics