Advertisement
DiceyX

Task 1

Mar 19th, 2025 (edited)
2,121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.77 KB | Gaming | 0 0
  1. CREATE OR REPLACE FUNCTION enclosure_available
  2.     (f_id int, custom_date DATE)
  3. RETURNS BOOLEAN
  4. LANGUAGE plpgsql
  5. AS $$
  6.     DECLARE
  7.         _f_enclosure_id int;
  8.         _c BOOLEAN := TRUE;
  9.     BEGIN
  10.  
  11.         BEGIN
  12.             SELECT enclosure_id
  13.             INTO STRICT _f_enclosure_id
  14.             FROM bookings
  15.             WHERE enclosure_id =  f_id
  16.             LIMIT 1;
  17.         EXCEPTION
  18.             WHEN NO_DATA_FOUND
  19.             THEN
  20.                 RAISE NOTICE 'Не найден вольер с id %', f_id;
  21.                 RETURN FALSE;
  22.         END;
  23.    
  24.     SELECT FALSE
  25.     INTO STRICT _c
  26.     FROM bookings
  27.     WHERE enclosure_id = f_id
  28.         AND
  29.         custom_date BETWEEN date_begin AND date_end
  30.     LIMIT 1;
  31.  
  32. RETURN _c;
  33.  
  34.     END;
  35. $$
Tags: sql
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement