CREATE TABLE zesp ( id_zesp number, nazwa varchar2(20));
INSERT INTO zesp VALUES (1,'Bazy danych');
INSERT INTO zesp VALUES (2,'Badania operacyjne');
INSERT INTO zesp VALUES (3,'Algorytmy');
INSERT INTO zesp VALUES (4,'Inzynieria opr.');
INSERT INTO zesp VALUES (5,'Bezpieczenstwo');

CREATE TABLE prac 
( id_prac NUMBER, id_zesp NUMBER, nazwisko VARCHAR2(50), plec CHAR(1), czy_etat CHAR(1), placa NUMBER, placa_dod NUMBER );

DECLARE
  v_i NUMBER := 0;
  v_plec CHAR(1);
  v_etat CHAR(1);
BEGIN
  WHILE v_i < 10000 LOOP
    IF(MOD(v_i,10) < 2) 
      THEN v_plec := 'K'; 
    ELSE v_plec := 'M'; 
    END IF;

    IF(MOD(v_i,10) < 1) 
      THEN v_etat := 'N';  
    ELSE v_etat := 'T'; 
    END IF;

    INSERT INTO prac VALUES (v_i, MOD(v_i,5)+1, 'Prac'||v_i, v_plec, v_etat, MOD(v_i,1000),100);

    IF (MOD(v_i,1000)=0) 
      THEN COMMIT; 
    END IF;
    v_i := v_i + 1;
  END LOOP;
END;
/

update prac
set    placa_dod = 999
where  id_prac = 4567
/