当前位置:  数据库>oracle

Oracle字符串的连接聚合函数可用于group by

    来源: 互联网  发布时间:2017-04-22

    本文导语: 1.新建type strcat_type -- 定义类型 聚合函数的实质就是一个对象   create or replace type strcat_type as object (       cat_string varchar2(4000),       --对象初始化       static function ODCIAggregateInitialize(cs_ctx In Out strcat_type)           ret...

1.新建type strcat_type

-- 定义类型 聚合c#中oracle to_date函数用法举例 iis7站长之家的实质就是一个对象  
create or replace type strcat_type as object (  
    cat_string varchar2(4000),  
    --对象初始化  
    static function ODCIAggregateInitialize(cs_ctx In Out strcat_type)  
        return number,  
        --聚合函数的迭代方法(这是最重要的方法)  
    member function ODCIAggregateIterate(self In Out strcat_type,value in varchar2)  
        return number,  
        --当查询语句并行运行时,才会使用该方法,可将多个并行运行的查询结果聚合  
    member function ODCIAggregateMerge(self In Out strcat_type,ctx2 In Out strcat_type)  
        return number,  
        --终止聚集函数的处理,返回聚集函数处理的结果  
    member function ODCIAggregateTerminate(self In Out strcat_type,returnValue Out varchar2,flags in number)  
        return number  
)














2.建立type body strcat_type
create or replace type body strcat_type is 
  static function ODCIAggregateInitialize(cs_ctx IN OUT strcat_type) return number  
  is 
  begin 
      cs_ctx := strcat_type( null );  
      return ODCIConst.Success;  
  end;  
  member function ODCIAggregateIterate(self IN OUT strcat_type,  
                                      value IN varchar2 )  
  return number  
  is 
  begin 
        /*字符串已','分割 */  
      self.cat_string := self.cat_string || ','|| value;  
      return ODCIConst.Success;  
  end;  
  member function ODCIAggregateTerminate(self IN Out strcat_type,  
                                        returnValue OUT varchar2,  
                                        flags IN number)  
  return number  
  is 
  begin
        /*去除空(is null)*/  
      returnValue := ltrim(rtrim(self.cat_string,','),',');  
      return ODCIConst.Success;  
  end;  
  member function ODCIAggregateMerge(self IN OUT strcat_type,  
                                    ctx2 IN Out strcat_type)  
  return number  
  is 
  begin 
      self.cat_string := self.cat_string || ',' || ctx2.cat_string;  
      return ODCIConst.Success;  
  end;
end;


































3.建立函数func_strcat

CREATE OR REPLACE FUNCTION func_strcat(input varchar2)  
RETURN varchar2 -- 返回值  
PARALLEL_ENABLE AGGREGATE USING strcat_type; --使平行累加

------以上函数的建立摘自网络--------
4.结果
select * from t_test t;

id      keyword synonyms
1 咖啡 咖啡厅
2 咖啡 咖啡屋
3 咖啡 咖啡店
4 音乐 流行音乐
5 音乐 古典音乐
6 生活 恬静的生活
7 生活 安逸的生活
_________________________________________
select  t.keyword,func_strcat(t.synonyms)
from t_test t group by t.keyword;









keyword func_strcat(t.synonyms)
咖啡 咖啡厅,咖啡屋,咖啡店
生活 恬静的生活,安逸的生活
音乐 流行音乐,古典音乐



    
 
 

您可能感兴趣的文章:

  • Oracle中SQL语句连接字符串的符号使用介绍
  • Oracle中字符串连接的实现方法
  • 快疯了:怎样从JSP中向Oracle_816中插入LONG型字符串?
  • 向Oracle数据库的CLOB属性插入数据报字符串过长错误
  • oracle使用instr或like方法判断是否包含字符串
  • 我要向oracle中插入大文本,用的是lang类型的字段,但是只能插3000字,再多就抱错,说我字符串过长。谁遇到过此问题?
  • (oracle)如何解决这个很长的sql字符串:(怎样让他转行?)
  • Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
  • 怎样用oracle保存长字符串(4、5千字左右),并用jsp取出?在线给分
  • oracle 字符串转成行
  • Oracle字符串截取
  • 深入分析C#连接Oracle数据库的连接字符串详解
  • Oracle 存储过程总结 二、字符串处理相关函数
  • Oracle 多行记录合并/连接/聚合字符串的几种方法
  • ORACLE常用数值函数、转换函数、字符串函数
  • Oracle to_char 日期转换字符串语句分享
  • Oracle 系统变量函数介绍
  • Oracle 系统变量函数用法指南
  • Oracle中decode函数的用法
  • Oracle round()函数与trunc()函数区别介绍
  • oracle中lpad函数的用法详解
  • MySQL实现类似Oracle中的decode()函数的功能
  • Oracle函数substr(str1, pos, [len])
  • SQL中Charindex和Oracle中对应的函数Instr对比
  • apache通过php的oci函数读取Oracle(字符集ZHS16GBK)时,显示乱码,如何解决?
  • Oracle Max函数使用中出现的问题
  • oracle合并列的函数wm_concat的使用详解
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • c#中oracle to_date函数用法举例
  • Oracle 函数用法之decode
  • Oracle过程与函数的区别分析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在Red Hat Linux 9 和 Oracle 9.2 环境下,如何配制字符集,让Oracle能存入并显示日语里的假名?
  • ORACLE 10G修改字符编码没有超字符集的限制
  • 查询与修改Oracle字符集
  • oracle查看字符集后修改oracle服务端和客户端字符集的步骤
  • oracle截取字符(substr)检索字符位置(instr)示例介绍
  • 关于Oracle BLOB类型,一个String字符怎么写入BLOB字段?
  • Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
  • Oracle中字符集的类型决定varchar2的字符长度
  • 安装oracle9的时候字符无法显示??
  • oracle查询不含括号及不含指定字符的方法
  • Linux字符安装oracle
  • 怎么用jsp向oracle8提交长字符(15000字左右)?
  • 查看和修改Oracle服务器端字符集
  • Oracle字符集修改查看方法
  • Linux下字符安装oracle好轻松
  • 如何在RAC环境下修改Oracle字符集
  • Oracle用户密码含特殊字符时登陆失败问题
  • oracle查询字符集语句分享
  • linux下字符安装oracle 10g!最后出现点问题!很急!
  • Oracle 8i字符集乱码问题析及其解决办法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,