Вы можете добавить что-то в param как varchar, а затем преобразовать его в соответствующий тип, используя структуру CASE, а затем использовать его в своей процедуре, типа:
BEGIN
DECLARE v VARCHAR DEFAULT "NULL";
CASE v
WHEN 'INT' THEN CONVERT(v AS INT);
WHEN 'FLOAT' THEN CONVERT(v AS FLOAT);
ELSE
BEGIN
END;
END CASE;
END;