zoukankan      html  css  js  c++  java
  • oracle 字符串聚合函数 strCat

    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;

  • 相关阅读:
    Android屏幕尺寸单位转换
    详细解读KMP模式匹配算法
    自定义View实现钟摆效果进度条PendulumView
    解决使用属性动画没有效果,监听发现属性值未发生改变问题
    数组----二维数组中的查找
    JS(二)
    JS(一)
    CSS(二)
    css(一)
    链表----删除链表中重复的节点
  • 原文地址:https://www.cnblogs.com/rxie/p/1785988.html
Copyright © 2011-2022 走看看