Oracle中用户自己创建与调用聚合函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle中用户自己创建与调用聚合函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2082字,纯文字阅读大概需要3分钟。
内容图文
![Oracle中用户自己创建与调用聚合函数](/upload/InfoBanner/zyjiaocheng/552/44e73c888a2241ddba37ffff765c02fa.jpg)
在做项目的时候,遇到将多条记录合并为一条记录,然后将不同的字段合并为一个字段显示,并用逗号分开;本人使用后,解决了很多不便解
在做项目的时候,遇到将多条记录合并为一条记录,然后将不同的字段合并为一个字段显示,并用逗号分开;本人使用后,解决了很多不便解决的问题,,特整理如下,以供各位网友参考!
具体创建如下:首先打开sql_plus:
创建函数使用的强制类:
--Oracle9i聚合函数 (查询时使用)
create type CatStringImpl as object (
catstring VARCHAR2(4000), -- 返回的字符串
static function ODCIAggregateInitialize(sctx IN OUT CatStringImpl)
return number,
member function ODCIAggregateIterate(self IN OUT CatStringImpl,value IN varchar2)
return number,
member function ODCIAggregateTerminate(self IN CatStringImpl,returnValue OUT varchar2, flags IN number)
return number,
member function ODCIAggregateMerge(self IN OUT CatStringImpl,ctx2 IN CatStringImpl)
return number
);
然后创建函数方法,就是函数功能:
create or replace type body CatStringImpl as
static function ODCIAggregateInitialize(sctx IN OUT CatStringImpl) return number is
begin
sctx := CatStringImpl('');
return ODCIConst.Success;
end;
member function ODCIAggregateIterate(self IN OUT CatStringImpl, value IN varchar2) return number is
begin
self.catstring := self.catstring || ',' || value;
return ODCIConst.Success;
end;
member function ODCIAggregateTerminate(self IN CatStringImpl, returnValue OUT varchar2, flags IN number) return number is
begin
returnValue := self.catstring;
return ODCIConst.Success;
end;
member function ODCIAggregateMerge(self IN OUT CatStringImpl , ctx2 IN CatStringImpl ) return number is
begin
self.catstring := self.catstring || ',' || ctx2.catstring;
return ODCIConst.Success;
end;
end;
最后就是建立函数:
create function catstr( input varchar2 ) return varchar2 PARALLEL_ENABLE AGGREGATE USING CatStringImpl;
这样就建立好了目标函数,在查询调用时如下:
select catstr( a) , b , c from tb group by b , c 就可以将字符串按照code组合起来.
catstr为函数名称,其中a是同个字段对应有不同的值,b,c就是同个字段并且相同的值.
有了这个方法,以后使用就方便多了!
内容总结
以上是互联网集市为您收集整理的Oracle中用户自己创建与调用聚合函数全部内容,希望文章能够帮你解决Oracle中用户自己创建与调用聚合函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。