Oracle concat function
If you need to concatenate varchars:
Example:
CREATE OR REPLACE FUNCTION Fnc_Concat_List (cur SYS_REFCURSOR, separator VARCHAR2) RETURN VARCHAR2 IS
ret VARCHAR2(32000);
tmp VARCHAR2(4000);
BEGIN
LOOP
FETCH cur INTO tmp;
EXIT WHEN cur%NOTFOUND;
ret := ret || separator || tmp;
END LOOP;
ret := SUBSTR(ret, LENGTH(separator) + 1);
RETURN ret;
END;
/
Example:
CREATE TABLE hallo (ID number(10) PRIMARY KEY, NAME varchar2(255)); INSERT INTO hallo (ID, NAME) VALUES (1, 'a'); INSERT INTO hallo (ID, NAME) VALUES (2, 'b'); INSERT INTO hallo (ID, NAME) VALUES (3, 'c'); COMMIT; SELECT fnc_concat_list(CURSOR(SELECT name from hallo), ', ') from dual;