Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.31 KB | None | 0 0
  1. SET serveroutput ON;
  2.  
  3. 1.
  4.  
  5.  
  6. CREATE TABLE nekretnine(
  7.     id_nekretnine int NOT NULL,
  8.     id_vlasnika int NOT NULL,
  9.     grad VARCHAR(255) NOT NULL,
  10.     godina_izgr int NOT NULL,
  11.     datum_kupnje DATE NOT NULL,
  12.     datum_uknj DATE NOT NULL,
  13.     boja VARCHAR(50),
  14.     novo SMALLINT
  15. );
  16.  
  17. INSERT INTO nekretnine
  18. VALUES(1, 1, 'Zagreb', 1996, DATE '2018-01-01', DATE '2018-01-20', 'bijela', NULL);
  19.  
  20. INSERT INTO nekretnine
  21. VALUES(2, 1, 'Split', 2012, DATE '2018-01-01', DATE '2018-01-20', 'bijela', NULL);
  22.  
  23. INSERT INTO nekretnine
  24. VALUES(3, 2, 'Dubrovnik', 1994, DATE '2018-01-01', DATE '2018-01-20', 'bijela', NULL);
  25.  
  26. SELECT * FROM nekretnine;
  27.  
  28. 2.
  29.  
  30. ALTER TABLE nekretnine
  31. add nekretnina_zagreb SMALLINT;
  32.  
  33. DECLARE
  34.     CURSOR cur_nekretnine IS
  35.         SELECT *
  36.         FROM nekretnine;
  37.     redak cur_nekretnine%ROWTYPE;
  38.     p_nekr SMALLINT;
  39.    
  40. BEGIN
  41.     OPEN cur_nekretnine;
  42.    
  43.     LOOP
  44.         FETCH cur_nekretnine INTO redak;
  45.         EXIT WHEN cur_nekretnine%NOTFOUND;
  46.        
  47.         IF redak.grad = 'Zagreb'  THEN
  48.             p_nekr := 1;
  49.         ELSE
  50.             p_nekr := 0;
  51.         END IF;
  52.    
  53.        
  54.         UPDATE nekretnine
  55.             SET nekretnina_zagreb = p_nekr
  56.         WHERE nekretnine.id_nekretnine = redak.id_nekretnine;
  57.            
  58.     END LOOP;
  59. EXCEPTION
  60.  
  61. WHEN OTHERS THEN
  62.     DBMS_OUTPUT.put_line('Greška !');
  63.  
  64. END;
  65.  
  66. 4.
  67.  
  68. CREATE OR REPLACE PROCEDURE proc_novo(
  69.     p_id_nekretnine IN NUMBER)
  70.     IS
  71.     p_godina INT;
  72. BEGIN
  73.     SELECT godina_izgr INTO p_godina
  74.     FROM nekretnine
  75.     WHERE p_id_nekretnine = nekretnine.id_nekretnine;
  76.    
  77.         IF EXTRACT(YEAR FROM SYSDATE) - p_godina < 5 THEN  
  78.         UPDATE nekretnine
  79.         SET novo = 1
  80.         WHERE id = p_id_nekretnine;
  81.     ELSE
  82.         UPDATE nekretnine
  83.         SET novo = 0
  84.         WHERE id = p_id_nekretnine;
  85.     END IF;
  86.    
  87. EXCEPTION
  88.     WHEN OTHERS THEN
  89.     DBMS_OUTPUT.put_line('Greška !');
  90.  
  91. BEGIN
  92.     proc_novo(1);
  93. END;
  94.  
  95.  
  96. 3.
  97.  
  98. CREATE OR REPLACE PROCEDURE proc_vlas(
  99.     p_id_nekretnine IN NUMBER,
  100.     p_grad IN VARCHAR(255))
  101.     IS
  102.    
  103. BEGIN
  104.     UPDATE nekretnine
  105.     SET grad = p_grad
  106.     WHERE
  107.         id_nekretnine = p_id_nekretnine;
  108. EXCEPTION
  109.     WHEN OTHERS THEN
  110.     DBMS_OUTPUT.put_line('Greška!');
  111. END proc_vlas;
  112.  
  113. BEGIN
  114.     proc_vlas(1);
  115. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement