Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. DECLARE
  2.    cnt    NUMBER := 0;
  3.    new_cit  customers.city%TYPE := 'Orlando';
  4.    c_nm     customers.customer_nm%TYPE;
  5.    c_nbr    customers.customer_nbr%TYPE;
  6.    c_cit    customers.city%TYPE;
  7.    
  8.    CURSOR CSR IS
  9.          
  10.           SELECT  c.customer_nm, c.customer_nbr, c.city
  11.             FROM  customers c,
  12.                   states s,
  13.                   orders o,
  14.                   order_details d,
  15.                   products p
  16.            WHERE  c.state_cd = s.state_cd
  17.              AND  c.customer_nbr = o.customer_nbr
  18.              AND  o.order_nbr = d.order_nbr
  19.              AND  d.product_nbr = p.product_nbr
  20.              AND  c.state_cd = 'FL'
  21.              AND  p.retail_price > 25
  22.              FOR UPDATE            -- Required of any cursor for update
  23.               OF C.CITY ;
  24.              
  25. BEGIN
  26.    OPEN CSR;
  27.    LOOP
  28.        FETCH CSR INTO c_nm, c_nbr, c_cit ;
  29.        EXIT WHEN CSR%notfound;
  30.        cnt := cnt + 1;
  31.        
  32.        IF (c_cit = 'Tampa')
  33.         THEN
  34.             UPDATE CUSTOMERS
  35.                    SET CITY = new_cit
  36.                    WHERE CURRENT OF CSR;      --- Only used inside of a cursor
  37.                    DBMS_OUTPUT.put_line (cnt
  38.                              ||' CNAME = '
  39.                              ||c_nm
  40.                              ||' CNBR = '
  41.                              ||c_nbr
  42.                              ||' CCIT = '
  43.                              ||c_cit    
  44.                              );
  45.         END IF;    
  46.   END LOOP;
  47.  
  48.   EXCEPTION
  49.     WHEN OTHERS
  50.       THEN
  51.         DBMS_OUTPUT.put_line ('Trapped the error: '|| DBMS_UTILITY.format_error_stack () );
  52.       RAISE;
  53.  
  54.   COMMIT;
  55.   CLOSE CSR;
  56. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement