Advertisement
Guest User

Untitled

a guest
Jun 4th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SET SERVEROUTPUT ON;
  2.  
  3. --
  4. CREATE OR REPLACE FUNCTION pret_lista2 (id IN produse.id_produs%TYPE, categ IN produse.categorie%TYPE, discount IN produse.pret_lista%TYPE)
  5. RETURN produse.pret_lista%TYPE IS
  6. pret produse.pret_lista%TYPE;
  7. categorie_prod produse.categorie%TYPE;
  8. BEGIN
  9. SELECT pret_lista,categorie INTO pret,categorie_prod FROM produse WHERE id_produs = id;
  10. IF categ = categorie_prod THEN RETURN pret * (1 - discount);
  11. ELSE RETURN pret;
  12. END IF;
  13. END;
  14.  
  15. BEGIN
  16. DBMS_OUTPUT.PUT_LINE(pret_lista2(3061,'hardware2',0.1));
  17. END;
  18.  
  19.  
  20. BEGIN
  21. DBMS_OUTPUT.PUT_LINE(pret_lista2(3061,'hardware1',0.1));
  22. END;
  23.  
  24. --
  25. CREATE OR REPLACE TRIGGER pret_lista
  26. BEFORE INSERT OR UPDATE OF pret ON rand_comenzi
  27. FOR EACH ROW
  28. DECLARE
  29. id produse.id_produs%TYPE;
  30. categ produse.categorie%TYPE;
  31. BEGIN
  32. SELECT id_produs,categorie INTO id,categ FROM produse WHERE id_produs = :NEW.id_produs;
  33. CASE
  34. WHEN INSERTING THEN :NEW.pret := pret_lista2(id,categ,0);
  35. WHEN UPDATING THEN :NEW.pret := pret_lista2(id,categ,0);
  36. END CASE;
  37. END;
  38.  
  39. INSERT INTO rand_comenzi VALUES (2354,3061,500,10);
  40.  
  41. UPDATE rand_comenzi SET pret = 500 WHERE nr_comanda = 2354 AND id_produs = 3061;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement