欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

oracle行列互换sql,解决Oracle行列转换问题的一个方法

发布时间:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的这篇文章主要介绍了 oracle行列互换sql,解决Oracle行列转换问题的一个方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

不好意思,编译错误,可能是版本的问题

其实,实现的方法很简单,请参考精华帖子

下面是源文件 ,我是的数据库版本是9.2.0.1,OS为NT

[PHP]

---Author: Accelerator

---Date  : 2004-11-25

create or replace type list_agg  as object

(

total varchar2(4000),

static function

ODCIAggregateInitialize(sctx IN OUT list_agg )

return number,

member function

ODCIAggregateIterate(self IN OUT list_agg ,

value IN varchar2 )

return number,

member function

ODCIAggregateTerminate(self IN list_agg,

returnValue OUT  varchar2,

flags IN number)

return number,

member function

ODCIAggregateMerge(self IN OUT list_agg,

ctx2 IN list_agg)

return number

);

/

create or replace type body list_agg

is

static function ODCIAggregateInitialize(sctx IN OUT list_agg)

return number

is

begin

sctx := list_agg(null);

return ODCIConst.Success;

end;

member function ODCIAggregateIterate(self IN OUT list_agg,

value IN varchar2 )

return number

is

begin

self.total := self.total||','||value;

return ODCIConst.Success;

end;

member function ODCIAggregateTerminate(self IN list_agg,

returnValue OUT varchar2,

flags IN number)

return number

is

begin

returnValue := substr(self.total,2);

return ODCIConst.Success;

end;

member function ODCIAggregateMerge(self IN OUT list_agg,

ctx2 IN list_agg)

return number

is

begin

self.total := self.total||ctx2.total;

return ODCIConst.Success;

end;

end;

/

CREATE OR REPLACE FUNCTION list(input varchar2 )

RETURN varchar2

PARALLEL_ENABLE AGGREGATE USING list_agg;

/

[/PHP]

总结

以上是生活随笔为你收集整理的oracle行列互换sql,解决Oracle行列转换问题的一个方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。