Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --zadanie 223
- DECLARE
- TYPE R_OS IS RECORD (
- id osrodki.id_osrodek%TYPE,
- nazwa osrodki.nazwa_osrodek%TYPE); -- deklaracja typu rekordowego
- rek_o R_OS;
- TYPE NT_Osrodki IS TABLE OF R_Os ; -- deklaracja typu kolekcji
- NT_Lista NT_Osrodki := NT_Osrodki() ; -- deklaracja kolekcji i jej inicjacja
- CURSOR c1 IS SELECT id_osrodek, nazwa_osrodek FROM Osrodki;
- BEGIN
- -- utworzenie elementów kolekcji i nadanie im odpowiednich wartości
- FOR z IN c1 LOOP
- rek_o.id:=z.id_osrodek;
- rek_o.nazwa:=z.nazwa_osrodek;
- NT_Lista.EXTEND ; -- dodanie elementu do kolekcji
- NT_Lista(c1%ROWCOUNT) := rek_o; -- podstawienie wartości do bieżacego elementu kolekcji
- END LOOP; -- koniec inicjowania elementow kolekcji
- DBMS_OUTPUT.put_line('Liczba elementów to: ' || NT_Lista.COUNT());
- FOR i IN NT_Lista.FIRST..NT_Lista.COUNT() LOOP
- DBMS_OUTPUT.put_line(NT_Lista(i).id || ' ' || NT_Lista(i).nazwa);
- END LOOP;
- END ;
- --zadanie 224
- DECLARE
- TYPE R_OS IS RECORD (
- id osrodki.id_osrodek%TYPE,
- nazwa osrodki.nazwa_osrodek%TYPE); -- deklaracja typu rekordowego
- rek_o R_OS;
- TYPE NT_Osrodki IS TABLE OF R_Os ; -- deklaracja typu kolekcji
- NT_Lista NT_Osrodki := NT_Osrodki() ; -- deklaracja kolekcji i jej inicjacja
- CURSOR c1 IS SELECT id_osrodek, nazwa_osrodek FROM Osrodki;
- FUNCTION CheckExam(oid osrodki.id_osrodek%TYPE) RETURN BOOLEAN IS
- x NUMBER ;
- BEGIN
- SELECT DISTINCT 1 INTO x FROM egzaminy WHERE id_osrodek = oid ;
- RETURN FALSE ;
- EXCEPTION
- WHEN NO_DATA_FOUND THEN
- RETURN TRUE;
- END ;
- BEGIN
- -- utworzenie elementów kolekcji i nadanie im odpowiednich wartości
- FOR z IN c1 LOOP
- rek_o.id:=z.id_osrodek;
- rek_o.nazwa:=z.nazwa_osrodek;
- NT_Lista.EXTEND ; -- dodanie elementu do kolekcji
- NT_Lista(c1%ROWCOUNT) := rek_o; -- podstawienie wartości do bieżacego elementu kolekcji
- END LOOP; -- koniec inicjowania elementow kolekcji
- DBMS_OUTPUT.put_line('Liczba elementów to: ' || NT_Lista.COUNT());
- FOR i IN NT_Lista.FIRST..NT_Lista.COUNT() LOOP
- DBMS_OUTPUT.put_line(NT_Lista(i).id || ' ' || NT_Lista(i).nazwa);
- END LOOP;
- -- usuniecie osrodkow be egzaminow
- FOR i IN NT_Lista.FIRST..NT_Lista.COUNT() LOOP
- IF CheckExam(NT_Lista(i).id) THEN
- NT_Lista.DELETE(i) ;
- END IF ;
- END LOOP;
- DBMS_OUTPUT.put_line('Liczba elementów po usunięciu: ' || NT_Lista.COUNT());
- FOR i IN NT_Lista.FIRST..NT_Lista.LAST LOOP
- IF NT_Lista.EXISTS(i) THEN
- DBMS_OUTPUT.put_line(NT_Lista(i).id || ' ' || NT_Lista(i).nazwa);
- END IF ;
- END LOOP;
- END ;
- --kod pomocniczy zadanie 225
- CREATE OR REPLACE TYPE Typ_Przedmiot_Data
- AS OBJECT (Nazwa VARCHAR2(40), Data_egzaminu DATE);
- CREATE OR REPLACE TYPE Typ_ZPD IS TABLE OF Typ_Przedmiot_Data;
- CREATE TABLE Indeks ( Id_student VARCHAR2(7) PRIMARY KEY,
- nazwisko VARCHAR2(25),
- imie VARCHAR2(15),
- ZdanePrzedmioty Typ_ZPD ) NESTED TABLE ZdanePrzedmioty STORE AS ZdanePrzed_Tab;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement