Eu estou tentando criar uma função no postgres que recupera dados de uma tabela e insumos para outra. Eu estou usando o tipo ROWTYPE% para armazenar os dados temporários da instrução SELECT e, em seguida, iterar através dele com uma instrução de inserção, mas não tiveram sucesso! O seguinte é o meu código:
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 IGNORE 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;
Ok, então no momento eu estou apenas tentando ver se a função for loop usando o contador para contar a quantidade de loops e retornar esse número, mas não retornou nada ainda. Eu não tenho sido capaz de encontrar muita informação on-line ou em qualquer lugar em relação a este tipo de procedimento, e se alguém pode ajudar ou me guiar na direção certa será muito apreciada!
obrigado













