Problem z funkcją pl/sql

0

Cześć,
Prośba o pomoc co w tej funkcji mam nie tak. Z góry dziękuję za pomoc.

Funkcja ma dla podanego nazwiska prowadzącego zwracać liczbę przedmiotów przez niego prowadzonych.

CREATE OR REPLACE function liczba_przedmiotow(n in wykladowca.nazwisko%type) 
    return varchar2 IS
    dane varchar2(30);
begin

    select count(przedmiot.id_przedmiot) as ile, wykladowca.id_wykladowca into dane
    from przedmiot, wykladowca, zajecia
    where przedmiot.id_przedmiot = zajecia.id_przedmiot
    and zajecia.id_wykladowca = wykladowca.id_wykladowca
    --and wykladowca.imie = i
    and wykladowca.nazwisko = n
    group by wykladowca.id_wykladowca
    order by ile DESC;
    
    return dane;

end liczba_przedmiotow;

dostaję błąd:

Function LICZBA_PRZEDMIOTOW compiled

LINE/COL  ERROR
--------- -------------------------------------------------------------
6/5       PL/SQL: SQL Statement ignored
7/5       PL/SQL: ORA-00947: niewystarczająca liczba wartości
Errors: check compiler log

1
  1. Wyciągasz 2 wartości (ile, id_wykladowca) do jednej zmiennej (dane):
    select count(przedmiot.id_przedmiot) as ile, wykladowca.id_wykladowca into dane

  2. Po co ORDER BY?

  3. Skoro robisz ORDERA to może spodziewasz się większej ilości rekordów? Wówczas SELECT ... INTO wywali Ci się.

1 użytkowników online, w tym zalogowanych: 0, gości: 1