oracle拼接字符串函数(去重和不去重)
1.不去重FUNCTION f_link
Function f_link
CREATE OR REPLACE FUNCTION f_link (p_str VARCHAR2)
RETURN VARCHAR2 PARALLEL_ENABLE AGGREGATE
USING t_link;
Type t_link
CREATE OR REPLACE TYPE T_LINK AS OBJECT
(
str VARCHAR2(30000),
--currentseprator varchar2(8),
STATIC FUNCTION odciaggregateinitialize(sctx IN OUT t_link) RETURN NUMBER,
MEMBER FUNCTION odciaggregateiterate(SELF IN OUT t_link,
VALUE IN VARCHAR2) RETURN NUMBER,
MEMBER FUNCTION odciaggregateterminate(SELF IN t_link,
returnvalue OUT VARCHAR2,
flags IN NUMBER)
RETURN NUMBER,
MEMBER FUNCTION odciaggregatemerge(SELF IN OUT t_link, ctx2 IN t_link)
RETURN NUMBER
)
CREATE OR REPLACE TYPE BODY T_LINK IS
STATIC FUNCTION odciaggregateinitialize(sctx IN OUT t_link) RETURN NUMBER IS
BEGIN
sctx := t_link(NULL);
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregateiterate(SELF IN OUT t_link,
VALUE IN VARCHAR2) RETURN NUMBER IS BEGIN
SELF.str := SELF.str || ';' || VALUE;
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregateterminate(SELF IN t_link,
returnvalue OUT VARCHAR2,