create_add_missing_stocks.sql 739 B

123456789101112131415161718192021222324252627282930
  1. CREATE OR REPLACE FUNCTION add_missing_stocks() RETURNS void AS
  2. $$
  3. DECLARE
  4. proCursor CURSOR FOR SELECT pro_id FROM Product;
  5. proId Product.pro_id%TYPE;
  6. warCursor CURSOR FOR SELECT war_id FROM Warehouse;
  7. warId Warehouse.war_id%TYPE;
  8. BEGIN
  9. RAISE NOTICE 'Start';
  10. -- Iterate on products
  11. OPEN proCursor;
  12. LOOP
  13. FETCH proCursor INTO proId;
  14. EXIT WHEN proId IS NULL;
  15. -- Iterate on warehouses
  16. OPEN warCursor;
  17. LOOP
  18. FETCH warCursor INTO warId;
  19. EXIT WHEN warId IS NULL;
  20. RAISE NOTICE 'Pro % for war %', proId, warId;
  21. END LOOP;
  22. CLOSE warCursor;
  23. END LOOP;
  24. CLOSE proCursor;
  25. RAISE NOTICE 'End';
  26. END;
  27. $$
  28. LANGUAGE plpgsql;