Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET SERVEROUTPUT ON
- --kolokwium I, grupa 1
- --zad 1
- DECLARE
- n INT := '&podaj_n';
- x NUMBER(5,2) := '&podaj_x';
- wyraz NUMBER(7,2) := 1.0;
- wynik NUMBER(7,2) := 1.0;
- BEGIN
- FOR i IN 1..n LOOP
- wyraz := wyraz * ( (x - 1) / (n * x));
- wynik := wynik + wyraz;
- END LOOP;
- DBMS_OUTPUT.put_line('Wynik: ' || wynik);
- END;
- --zad2_1
- DECLARE
- CURSOR kursor IS
- SELECT COUNT(u.id_ucznia) AS ilosc, n.nazwisko, n.imie
- FROM uczniowie u
- JOIN klasy k ON k.id_klasy = u.id_klasy
- JOIN nauczyciele n ON n.id_nauczyciela = k.id_nauczyciela
- WHERE k.nazwa = 'IVb'
- GROUP BY n.nazwisko, n.imie;
- dane kursor % ROWTYPE;
- BEGIN
- OPEN kursor;
- FETCH kursor INTO dane;
- CLOSE kursor;
- DBMS_OUTPUT.put_line(dane.ilosc || dane.nazwisko || dane.imie);
- END;
- --zad2_1
- DECLARE
- CURSOR kursor IS
- SELECT COUNT(u.id_ucznia) AS ilosc, n.nazwisko, n.imie
- FROM uczniowie u
- JOIN klasy k ON k.id_klasy = u.id_klasy
- JOIN nauczyciele n ON n.id_nauczyciela = k.id_nauczyciela
- WHERE k.nazwa = 'IVb'
- GROUP BY n.nazwisko, n.imie;
- TYPE MojRekord IS RECORD (
- ilosc INT,
- imie VARCHAR2(20),
- nazwisko VARCHAR2(20)
- );
- dane MojRekord;
- BEGIN
- OPEN kursor;
- FETCH kursor INTO dane;
- CLOSE kursor;
- DBMS_OUTPUT.put_line(dane.ilosc || dane.nazwisko || dane.imie);
- END;
- --zad3
- DECLARE
- CURSOR ocenki(klasa IN VARCHAR2) IS
- SELECT u.id_ucznia, p.id_przedmiotu, o.ocena
- FROM oceny o
- JOIN przedmioty p ON p.id_przedmiot = o.id_przedmiotu
- JOIN uczniowie u ON u.id_ucznia = o.id_ucznia
- JOIN klasy k ON k.id_klasy = u.id_klasy
- WHERE p.nazwa = 'matematyka' AND k.nazwa = klasa
- FOR UPDATE;
- dane ocenki % ROWTYPE;
- nowaocena NUMBER(2,1);
- BEGIN
- OPEN ocenki('IVb');
- LOOP
- EXIT WHEN oceny % NOTFOUND;
- FETCH ocenki INTO dane;
- IF dane.ocena < 5 THEN
- UPDATE oceny SET oceny.ocena = oceny.ocena + 1
- WHERE CURRENT OF ocenki
- RETURNING ocena INTO nowaocena;
- DBMS_OUTPUT.put_line(id_ucznia || id_przedmiotu || ocena || nowaocena);
- END IF;
- END LOOP;
- CLOSE ocenki;
- END;
- --4
- DECLARE
- CURSOR kursor IS
- SELECT k.nazwa, AVG(o.ocena) AS srednia
- FROM klasa k
- JOIN uczniowie u ON u.id_klasy = k.id_klasy
- JOIN oceny o ON o.id_ucznia = u.id_ucznia
- GROUP BY k.nazwa;
- BEGIN
- FOR i IN kursor LOOP
- DBMS_OUTPUT.put_line(i.nazwa || i.srednia);
- END LOOP;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement