---- ============================================= ===================== -- 1.创建oracle TYPE -- ==================== ============================================== 创建或替换 TYPE COLUMNSTRCAT 作为对象( str VARCHAR2(4000),静态函数
---- ================================================== ==================
-- 1.创建oracle TYPE
-- ================================================== ================
创建或替换 TYPE COLUMNSTRCAT 作为对象
(
str VARCHAR2(4000),
静态函数 ODCIAggregateInitialize(sctx IN OUT ColumnStrCat) 返回数字,
成员函数 ODCIAggregateIterate(self IN OUT ColumnStrCat, value IN VARCHAR2) 返回数字,
成员函数 ODCIAggregateTerminate(self IN ColumnStrCat, returnValue OUT VARCHAR2, flags IN number) 返回数字,
成员函数 ODCIAggregateMerge(self IN OUT ColumnStrCat,ctx2 IN ColumnStrCat) 返回数字
);
-- ================================================== ================
-- 2.创建oracle TYPE BODIES
-- ================================================== ================
创建或替换类型主体列STRCAT是
-- 会员流程及功能
静态函数 ODCIAggregateInitialize(sctx IN OUT ColumnStrCat)
返回号码
是
开始
sctx := ColumnStrCat('');
返回 ODCIConst.Success;
结束;
成员函数 ODCIAggregateIterate(self IN OUT ColumnStrCat, value IN varchar2) 返回数字为
计数器整数;
开始
self.str := self.str||值||',';
返回 ODCIConst.Success;
结束;
成员函数 ODCIAggregateTerminate(self IN ColumnStrCat, returnValue OUT varchar2, flags IN number) 返回编号为
开始
returnValue := substr(self.str,1,length(self.str)-1);
返回 ODCIConst.Success;
结束;
成员函数 ODCIAggregateMerge(self IN OUT ColumnStrCat, ctx2 IN ColumnStrCat) 返回编号为
开始
self.str := self.str||ctx2.str;
返回 ODCIConst.Success;
结束;
结束;
-- -- ================================================ ==================
-- 3.创建oracle函数
-- -- ================================================ ==================
创建或替换函数列STRJOIN(输入varchar2)返回varchar2
使用 ColumnStrCat 并行启用聚合;
-- -- ============================================= =====================
-- 4. 使用示例
-- -- ================================================ ==================
select COLUMNSTRJOIN(a.name) from table_name a where a.type >; 1