Apakah Anda mendapatkan pesan kesalahan saat menggunakan wm_concat? Tidak seperti fungsi seperti to_char, ini dimiliki oleh wmsys dan Anda mungkin perlu menggunakan wmsys.wm_concat untuk menggunakannya. (kecuali jika Anda membuat sinonim yang diperlukan tentunya).
Sekarang untuk pertanyaan sebenarnya,
Teknik ini disebut agregasi string.
Anda dapat menemukan banyak alternatif lain di sini.
http://www.Oracle-base.com/articles/ 10g/StringAggregationTechniques.php Untuk metode lain, Cari "stragg" di http://asktom.oracle.com Tautan bermanfaat lainnya :http://www.orafaq.com/node/2290
Ini mungkin yang paling sering digunakan. Banyak tim menulis fungsi kustom mereka sendiri yang kurang lebih melakukan hal yang sama.
CREATE OR REPLACE FUNCTION get_employees (p_deptno in emp.deptno%TYPE)
RETURN VARCHAR2
IS
l_text VARCHAR2(32767) := NULL;
BEGIN
FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP
l_text := l_text || ',' || cur_rec.ename;
END LOOP;
RETURN LTRIM(l_text, ',');
END;
/
SHOW ERRORS
sementara solusi ini bekerja untuk varchar2 dan nomor, solusi generik terbaik dapat dibangun menggunakan antarmuka Oracle ODCIAggregate.
http://download-west .oracle.com/docs/cd/B14117_01/appdev.101/b10800/dciaggfns.htm#sthref462
Implementasi untuk hal yang sama ada di tautan pertama di atas di www.Oracle-base.com