我正在尝试输出教授教授的课程列表,方法是通过我的函数的参数接收教授的 id,并显示所有课程,每个课程用逗号分隔。例如,如果教授教授人文、科学和数学,我希望输出为:“人文、科学、数学”。但是,我得到的只是“数学”。它只显示它找到的与教授的 id 匹配的最后一个字段。
CREATE OR REPLACE FUNCTION listar_cursos(prof NUMBER) RETURN VARCHAR
IS
CURSOR C1 IS
SELECT subject.name AS name FROM subject
INNER JOIN course_semester
ON subject.id = course_semester.id_subject
WHERE course_semester.id_profesor = prof
ORDER BY subject.name;
test VARCHAR(500);
BEGIN
FOR item IN C1
LOOP
test:= item.name ||',';
END LOOP;
RETURN test;
END;
/
我知道 listagg 存在,但我不想使用它。