Advertisement
Guest User

Untitled

a guest
Jan 17th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.79 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE najlepszy_student(im OUT VARCHAR2, naz OUT VARCHAR2, nr OUT INTEGER, srednia OUT INTEGER)
  2. IS
  3. CURSOR najlepszy IS SELECT OCENA.ID_STUDENT,AVG(OCENA.OCENA) "Ocena" FROM OCENA GROUP BY OCENA.ID_STUDENT ORDER BY "Ocena" DESC;
  4. st STUDENT%ROWTYPE;
  5. id_studenta INTEGER(5);
  6. sr INTEGER(5,4);
  7. sr2 INTEGER(5,4);
  8. excpt EXCEPTION;
  9. BEGIN
  10. OPEN najlepszy;
  11. FETCH najlepszy INTO id_studenta,sr;
  12. SELECT * INTO st FROM STUDENT WHERE ID_STUDENT=id_studenta;
  13. im:=st.IMIE;
  14. naz:=st.NAZWISKO;
  15. nr:=st.NRALBUMU;
  16. srednia:=sr;
  17. IF najlepszy%FOUND THEN
  18. FETCH najlepszy INTO id_studenta,sr2;
  19.     IF sr2=sr THEN
  20.        
  21.         RAISE excpt;
  22.     END IF;
  23. END IF;
  24. CLOSE najlepszy;
  25. EXCEPTION
  26. WHEN excpt THEN
  27. DBMS_OUTPUT.put_line('Wiecej niz jeden student ze srednia: ' || TO_CHAR(sr));
  28.  
  29. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement