Src |
CREATE FUNCTION "URX_GTIN"."_urx_utils_calculate_max_column_length"(_table_name character varying)
RETURNS void AS
$BODY$
DECLARE
_record RECORD;
_number INTEGER;
BEGIN
SET search_path = "URX_GTIN", pg_catalog;
FOR _record IN
SELECT
column_name,
LOWER(data_type) AS data_type
FROM information_schema.columns
WHERE table_name = _table_name
ORDER BY column_name
LOOP
IF _record.data_type = 'character varying' THEN
EXECUTE FORMAT('SELECT MAX(LENGTH(%s)) FROM %s', _record.column_name, _table_name) INTO _number;
RAISE NOTICE 'O tamanho sugerido para o campo ''%'' é de ''%'' caracteres.', _record.column_name, CAST(_number AS VARCHAR);
END IF;
END LOOP;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
|