-- FUNCTION: public.fnc_pro_junta_cod_fabricante_concatena(integer, integer) -- DROP FUNCTION public.fnc_pro_junta_cod_fabricante_concatena(integer, integer); CREATE OR REPLACE FUNCTION public.fnc_pro_junta_cod_fabricante_concatena( var_filial_pro integer, var_produto integer) RETURNS character varying LANGUAGE 'plpgsql' COST 100 VOLATILE AS $BODY$ DECLARE cod_fabr character varying(500); row_data pro_cod_fabricante%ROWTYPE; BEGIN FOR row_data IN SELECT filial, cod_fabricante, produto, tipo, fornecedor FROM pro_cod_fabricante WHERE filial = var_filial_pro AND produto = var_produto ORDER BY fornecedor, cod_fabricante LOOP IF cod_fabr IS NULL THEN cod_fabr = row_data.cod_fabricante; ELSE cod_fabr = substr(cod_fabr || ' <=> ' || row_data.cod_fabricante, 1, 500); END IF; END LOOP; RETURN cod_fabr; END; $BODY$; ALTER FUNCTION public.fnc_pro_junta_cod_fabricante_concatena(integer, integer) OWNER TO postgres; -- FUNCTION: public.fnc_pro_junta_cod_fabricante(integer, integer) -- DROP FUNCTION public.fnc_pro_junta_cod_fabricante(integer, integer); CREATE OR REPLACE FUNCTION public.fnc_pro_junta_cod_fabricante( var_filial_pro integer, var_produto integer) RETURNS character varying LANGUAGE 'plpgsql' COST 100 VOLATILE AS $BODY$ DECLARE cod_fabr character varying(2000); row_data pro_cod_fabricante%ROWTYPE; BEGIN FOR row_data IN SELECT filial, cod_fabricante, produto, tipo, fornecedor FROM pro_cod_fabricante WHERE filial = var_filial_pro AND produto = var_produto AND tipo <> 'C' LOOP IF cod_fabr IS NULL THEN cod_fabr = row_data.cod_fabricante; ELSE cod_fabr = substr(cod_fabr || ' / ' || row_data.cod_fabricante, 1, 2000); END IF; END LOOP; RETURN cod_fabr; END; $BODY$; ALTER FUNCTION public.fnc_pro_junta_cod_fabricante(integer, integer) OWNER TO postgres;