Я пытаюсь создать функцию в postgres, которая извлекает данные из одной таблицы и вводит их в другую. Я использую тип% ROWTYPE, чтобы сохранить временные данные из оператора select, а затем перебрать его с помощью оператора вставки, но безуспешно! Вот мой код:
CREATE OR REPLACE FUNCTION rm_stock_take_add (icompany character varying, idate character varying)
RETURNS character varying AS
$BODY$
DECLARE
loc_result CHAR(50);
-- Declaring a counter to increment for the index
counter INTEGER;
-- Declare a variable to hold rows from the stock table.
row_data rm_stock%ROWTYPE;
BEGIN
-- Iterate through the results of a query.
FOR row_data IN
SELECT *
FROM rm_stock
--WHERE company = icompany
ORDER BY company, rm_sto_code, rm_col_code
LOOP
counter := counter + 1;
/*
INSERT INTO rm_stock_take
(
"stock_ind", "company", "rm_stock_code", "rm_col_code", "rm_dye_lot_num", "rm_take_date", "rm_quantity_theo"
)
VALUES
(
counter, icompany, row_data.rm_sto_code, row_data.rm_col_code, row_data.rm_dye_lot_num, idate,
row_data.rm_sto_on_hand_excl
);
*/
END LOOP;
RETURN counter :: character varying;
END;
$BODY$
LANGUAGE 'plpgsql'VOLATILE;
ALTER FUNCTION rm_stock_take_add(icompany character varying, idate character varying) OWNER TO postgres;
Хорошо, так что в данный момент я просто пытаюсь увидеть, зацикливается ли функция, используя счетчик для подсчета количества циклов и возврата этого числа, но пока ничего не вернул. Я не смог найти много информации в Интернете или где-либо еще относительно такого рода процедур, и если кто-то может помочь или направить меня в правильном направлении, это будет с благодарностью!
Спасибо