Created
March 29, 2016 01:58
-
-
Save otwm/36a7b0ec3ae6532d7a53 to your computer and use it in GitHub Desktop.
wm_concat 함수 재정의
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE OR REPLACE TYPE t_string_agg AS OBJECT | |
( | |
g_string VARCHAR2(32767), | |
STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg) | |
RETURN NUMBER, | |
MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg, | |
value IN VARCHAR2 ) | |
RETURN NUMBER, | |
MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg, | |
returnValue OUT VARCHAR2, | |
flags IN NUMBER) | |
RETURN NUMBER, | |
MEMBER FUNCTION ODCIAggregateMerge(self IN OUT t_string_agg, | |
ctx2 IN t_string_agg) | |
RETURN NUMBER | |
); | |
/ | |
SHOW ERRORS | |
CREATE OR REPLACE TYPE BODY t_string_agg IS | |
STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg) | |
RETURN NUMBER IS | |
BEGIN | |
sctx := t_string_agg(NULL); | |
RETURN ODCIConst.Success; | |
END; | |
MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg, | |
value IN VARCHAR2 ) | |
RETURN NUMBER IS | |
BEGIN | |
SELF.g_string := self.g_string || ',' || value; | |
RETURN ODCIConst.Success; | |
END; | |
MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg, | |
returnValue OUT VARCHAR2, | |
flags IN NUMBER) | |
RETURN NUMBER IS | |
BEGIN | |
returnValue := RTRIM(LTRIM(SELF.g_string, ','), ','); | |
RETURN ODCIConst.Success; | |
END; | |
MEMBER FUNCTION ODCIAggregateMerge(self IN OUT t_string_agg, | |
ctx2 IN t_string_agg) | |
RETURN NUMBER IS | |
BEGIN | |
SELF.g_string := SELF.g_string || ',' || ctx2.g_string; | |
RETURN ODCIConst.Success; | |
END; | |
END; | |
/ | |
SHOW ERRORS | |
CREATE OR REPLACE FUNCTION wm_concat (p_input VARCHAR2) | |
RETURN VARCHAR2 | |
PARALLEL_ENABLE AGGREGATE USING t_string_agg; | |
/ | |
SHOW ERRORS |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment