Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Sa se adauge in tabela produse o inreg noua astfel:
- --id_produs ca max + 1, denumire_produs de la tast, descriere de la tast, categorie de la tast, pret_lista si pret_min null
- SET SERVEROUTPUT ON
- DECLARE
- i NUMBER;
- BEGIN
- SELECT (MAX(id_produs)) + 1 INTO i FROM produse;
- INSERT INTO produse VALUES (i, '&denumire_produs', '&descriere', '&categorie', NULL, NULL);
- END;
- SELECT * FROM produse;
- --Construiti un bloc prin care sa dublati pretul minim al produsului care are id-ul citit de la tastatura
- DECLARE
- i NUMBER;
- pret NUMBER(8,2);
- BEGIN
- SELECT id_produs, pret_min INTO i, pret FROM produse WHERE id_produs = &id;
- pret := pret / 2;
- UPDATE produse SET pret_min = pret WHERE id_produs = i;
- IF SQL%FOUND THEN DBMS_OUTPUT.PUT_LINE('S-a modificat pretul');
- ELSE DBMS_OUTPUT.PUT_LINE('Nu s-a modificat pretul');
- END IF;
- END;
- SELECT * FROM produse WHERE id_produs = 3061;
- --Sa se afiseze numele si salariul tuturor angajatilor
- DECLARE
- CURSOR c IS SELECT nume, salariul FROM angajati;
- v_nume angajati.nume%TYPE;
- v_sal angajati.salariul%TYPE;
- BEGIN
- OPEN c;
- LOOP
- FETCH c INTO v_nume, v_sal;
- EXIT WHEN c%NOTFOUND;
- DBMS_OUTPUT.PUT_LINE(v_nume||' '||v_sal);
- END LOOP;
- CLOSE c;
- END;
- --Sa se construiasca un bloc prin care sa se afiseze pentru fiecare comanda nr_comanda, valoarea si data
- DECLARE
- CURSOR c IS SELECT nr_comanda, data, SUM(pret * cantitate) AS valoare FROM comenzi JOIN rand_comenzi
- USING (nr_comanda)
- GROUP BY nr_comanda, data;
- b c%ROWTYPE;
- BEGIN
- OPEN c;
- LOOP
- FETCH c INTO b;
- EXIT WHEN c%NOTFOUND;
- DBMS_OUTPUT.PUT_LINE(b.nr_comanda||' '||b.data||' '||b.valoare);
- END LOOP;
- CLOSE c;
- END;
- --varianta cursor cu for
- DECLARE
- CURSOR c IS SELECT nr_comanda, data, SUM(pret * cantitate) AS valoare FROM comenzi JOIN rand_comenzi
- USING (nr_comanda)
- GROUP BY nr_comanda, data;
- BEGIN
- FOR b IN c
- LOOP
- DBMS_OUTPUT.PUT_LINE(b.nr_comanda||' '||b.data||' '||b.valoare);
- END LOOP;
- END;
- --primele 3 valori mari
- DECLARE
- CURSOR c IS SELECT nr_comanda, data, SUM(pret * cantitate) AS valoare FROM comenzi JOIN rand_comenzi
- USING (nr_comanda)
- GROUP BY nr_comanda, data
- ORDER BY valoare DESC;
- BEGIN
- FOR b IN c
- LOOP
- DBMS_OUTPUT.PUT_LINE(b.nr_comanda||' '||b.data||' '||b.valoare);
- EXIT WHEN c%ROWCOUNT = 3;
- END LOOP;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement