Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE
- CURSOR CS IS SELECT id_student FROM studenci FOR UPDATE;
- tmp BOOLEAN;
- LiczbaPrzedmiotowDoZdania NUMBER;
- dataTMP DATE;
- FUNCTION CzyZdalWszystkie (idStudent VARCHAR, liczbaPrzedmiotow NUMBER) RETURN BOOLEAN IS
- lEgz NUMBER;
- BEGIN
- SELECT COUNT(DISTINCT id_przedmiot) INTO lEgz FROM egzaminy WHERE id_student = idStudent AND zdal = 'T';
- IF lEgz = liczbaPrzedmiotow THEN
- RETURN TRUE;
- ELSE RETURN FALSE;
- END IF;
- END CzyZdalWszystkie;
- FUNCTION OstatniaData (idStudent VARCHAR) RETURN DATE IS
- dataEgz DATE;
- BEGIN
- SELECT MAX(data_egzamin) INTO dataEgz FROM egzaminy WHERE id_student = idStudent AND zdal = 'T';
- RETURN dataEgz;
- END OstatniaData;
- BEGIN
- SELECT COUNT(*) INTO LiczbaPrzedmiotowDoZdania FROM Przedmioty;
- FOR vC IN CS LOOP
- tmp := CzyZdalWszystkie(vC.id_student, LiczbaPrzedmiotowDoZdania);
- IF tmp THEN
- dataTMP := OstatniaData(vC.id_student);
- UPDATE studenci
- SET nr_ecdl = vC.id_student, data_ecdl = dataTMP
- WHERE CURRENT OF CS;
- END IF;
- END LOOP;
- END;
- --select count(*) from egzaminy where id_student='02'
- --select * from studenci
Advertisement
Add Comment
Please, Sign In to add comment