Vous devez modifier votre fonction pour qu'elle ressemble à :
CREATE OR REPLACE FUNCTION f_test(IN_ID IN TABLE_C.a_id%TYPE)
RETURN VARCHAR2
IS
l_text VARCHAR2(32767) := NULL;
BEGIN
FOR cur_rec IN (SELECT b.b_name
FROM TABLE_B b
JOIN TABLE_C c ON c.b_id = b.b_id
WHERE c.a_id = IN_ID) LOOP
l_text := l_text || ',' || cur_rec.b_id;
END LOOP;
RETURN LTRIM(l_text, ',');
END;
Ensuite, vous pouvez utiliser :
SELECT a.a_name,
f_test(a.a_id)
FROM TABLE_A a