IT-Academy

Cykly

Dec 14th, 2017
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. CREATE OR REPLACE FUNCTION myfunction(integer)
  3. RETURNS integer AS '
  4.  DECLARE
  5.   nm ALIAS FOR $1;
  6.    cub INTEGER;
  7.  BEGIN
  8.   cub:=nm;
  9.    WHILE cub <=3 LOOP
  10.      cub := cub * cub * cub;
  11.    END LOOP;
  12.    RETURN cub;
  13.  END;
  14. ' LANGUAGE 'plpgsql';
  15.  
  16. SELECT myfunction(2);
  17.  
  18. -- 10. Cykly, FOR
  19.  [ <<label>> ]
  20.   FOR identifier IN [ REVERSE ] expression1 .. expression2  LOOP
  21.       statement;
  22.       [...]
  23.   END LOOP;
  24.  
  25.   CREATE OR REPLACE FUNCTION myfunction(dt DATE)
  26. RETURNS INTEGER
  27. AS
  28. $$
  29. DECLARE ddt DATE;
  30.         num  INTEGER;
  31.         x  INTEGER;
  32. BEGIN
  33.    ddT := dt;
  34.    x := EXTRACT(MONTH FROM dt);
  35.    FOR i IN 1 .. 31
  36.    LOOP  
  37.       num := i;          
  38.       EXIT WHEN EXTRACT(MONTH FROM ddt + i * INTERVAL '1 DAY') <> x;
  39.    END LOOP;
  40.    RETURN num-1;    
  41. END;
  42. $$
  43. LANGUAGE PLPGSQL;
  44.  
  45. SELECT myfunction(CURRENT_DATE);
Advertisement
Add Comment
Please, Sign In to add comment