ORACLE 字符串聚合函数 strcat
2013-07-09 16:10
232 查看
create or replace type strcat_type as object
(
currentstr varchar2(4000),
currentseprator varchar2(8),
static function ODCIAggregateInitialize(sctx IN OUT strcat_type) return number,
member function ODCIAggregateIterate(self IN OUT strcat_type,value IN VARCHAR2) return number,
member function ODCIAggregateTerminate(self IN strcat_type,returnValue OUT VARCHAR2, flags IN number) return number,
member function ODCIAggregateMerge(self IN OUT strcat_type,ctx2 IN strcat_type) return number
);
/*------------------------------------------------------------------------------------------------------------------------------------------------*/
create or replace type body strcat_type is
static function ODCIAggregateInitialize(sctx IN OUT strcat_type) return number is
begin
sctx := strcat_type('',',');
return ODCIConst.Success;
end;
member function ODCIAggregateIterate(self IN OUT strcat_type, value IN VARCHAR2) return number is
begin
if self.currentstr is null then
self.currentstr := value;
else
self.currentstr := self.currentstr ||currentseprator || value;
end if;
return ODCIConst.Success;
end;
member function ODCIAggregateTerminate(self IN strcat_type, returnValue OUT VARCHAR2, flags IN number) return number is
begin
returnValue := self.currentstr;
return ODCIConst.Success;
end;
member function ODCIAggregateMerge(self IN OUT strcat_type, ctx2 IN strcat_type) return number is
begin
if ctx2.currentstr is null then
self.currentstr := self.currentstr;
elsif self.currentstr is null then
self.currentstr := ctx2.currentstr;
else
self.currentstr := self.currentstr || currentseprator || ctx2.currentstr;
end if;
return ODCIConst.Success;
end;
end;
/*------------------------------------------------------------------------------------------------------------------------------------------------*/
CREATE OR REPLACE FUNCTION strcat (input VARCHAR2) RETURN VARCHAR2 PARALLEL_ENABLE AGGREGATE USING strcat_type;
转自:http://space.itpub.net/3090/viewspace-625084
(
currentstr varchar2(4000),
currentseprator varchar2(8),
static function ODCIAggregateInitialize(sctx IN OUT strcat_type) return number,
member function ODCIAggregateIterate(self IN OUT strcat_type,value IN VARCHAR2) return number,
member function ODCIAggregateTerminate(self IN strcat_type,returnValue OUT VARCHAR2, flags IN number) return number,
member function ODCIAggregateMerge(self IN OUT strcat_type,ctx2 IN strcat_type) return number
);
/*------------------------------------------------------------------------------------------------------------------------------------------------*/
create or replace type body strcat_type is
static function ODCIAggregateInitialize(sctx IN OUT strcat_type) return number is
begin
sctx := strcat_type('',',');
return ODCIConst.Success;
end;
member function ODCIAggregateIterate(self IN OUT strcat_type, value IN VARCHAR2) return number is
begin
if self.currentstr is null then
self.currentstr := value;
else
self.currentstr := self.currentstr ||currentseprator || value;
end if;
return ODCIConst.Success;
end;
member function ODCIAggregateTerminate(self IN strcat_type, returnValue OUT VARCHAR2, flags IN number) return number is
begin
returnValue := self.currentstr;
return ODCIConst.Success;
end;
member function ODCIAggregateMerge(self IN OUT strcat_type, ctx2 IN strcat_type) return number is
begin
if ctx2.currentstr is null then
self.currentstr := self.currentstr;
elsif self.currentstr is null then
self.currentstr := ctx2.currentstr;
else
self.currentstr := self.currentstr || currentseprator || ctx2.currentstr;
end if;
return ODCIConst.Success;
end;
end;
/*------------------------------------------------------------------------------------------------------------------------------------------------*/
CREATE OR REPLACE FUNCTION strcat (input VARCHAR2) RETURN VARCHAR2 PARALLEL_ENABLE AGGREGATE USING strcat_type;
转自:http://space.itpub.net/3090/viewspace-625084
相关文章推荐
- oracle 字符串聚合函数 strCat
- ORACLE 字符串聚合函数 strCat
- Oracle 聚合函数解决聚集连接字符串问题
- Oracle自定义聚合函数实现字符串连接的聚合
- oracle 字符串连接聚合函数
- ORACLE字符串的连接聚合函数可用于group by
- 用Oracle自定义聚合函数实现字符串连接的聚合
- Oracle: 四、函数,聚合函数,分组,字符串连接(中)
- 关于oracle中的字符串聚合函数
- Oracle 字符串聚合函数
- ORACLE字符串分组聚合函数(字符串连接聚合函数)
- Oracle 聚合函数解决聚集连接字符串问题
- Oracle自定义聚合函数实现字符串连接的聚合
- Oracle字符串截取
- Oracle 异常 ORA-01861: literal does not match format string(字符串格式不匹配)
- Oracle 的递归查询将层级变成字符串
- ORACLE中字符串是否相等的比较
- oracle中聚合函数rank和dense_rank取科目前三名
- 读书笔记:自定义函数实现字符串处理函数----strlen、strcmp、strcat、strcpy
- oracle的单行函数以及多行函数(聚合函数、分组函数)的使用