5.1. Typ "AGGR_LIST_T"

Závislé objekty
Pohledy - ENUM_LIST_VW - IFC_PROPERTY_VW
Funkce - AGGR_LIST

5.1.1. Tělo typu

TYPE BODY aggr_list_t
IS

  STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT aggr_list_t)
    RETURN NUMBER
  IS
  BEGIN
    sctx := aggr_list_t(null,',');
    RETURN ODCIConst.Success;
  END;

  MEMBER FUNCTION ODCIAggregateIterate(self IN OUT aggr_list_t,
                                       value IN VARCHAR2)
    RETURN NUMBER
  IS
  BEGIN
    IF value is not null
    THEN
      IF self.g_string is not null
      THEN
        self.g_string := self.g_string||self.g_separator;
      END IF;
      self.g_string := self.g_string||value;
    END IF;
    RETURN ODCIConst.Success;
  END;

  MEMBER FUNCTION ODCIAggregateTerminate(self IN aggr_list_t,
                                         returnValue OUT VARCHAR2,
                                         flags IN NUMBER)
    RETURN NUMBER
  IS
  BEGIN
    returnValue := self.g_string;
    RETURN ODCIConst.Success;
  END;

  MEMBER FUNCTION ODCIAggregateMerge(self IN OUT aggr_list_t,
                                     ctx2 IN aggr_list_t)
    RETURN NUMBER
  IS
  BEGIN
    IF ctx2.g_string is not null
    THEN
      IF self.g_string is not null
      THEN
        self.g_string := self.g_string||self.g_separator;
      END IF;
      self.g_string := self.g_string||ctx2.g_string;
    END IF;
    RETURN ODCIConst.Success;
  END;

END;