So first lets straighten out the terminology.
When you say "I have a character date", this can be confusing — a SAS date can only be numeric, and it must be the number of days since 01JAN1960 (although a SAS date can be formatted, for example, to appear as 01-01-1960). So you do not have a character DATE, you have a character STRING (or character variable) whose value is 10/8/2019.
Also, 10/8/2019 is 9 characters so it must have a length of 9.
Now, to convert this character string to appear differently, such as 20190810, the best and easiest way to do this is to use the built in SAS date functions and SAS date informats and SAS date formats. Why? Because SAS has already done the hard work of programming all these conversions, so you don't have to.
So here I use the informat ANYDTDTE to turn your character string into a SAS date value (numeric), and I use the format YYMMDDN8. make the date appear as 20191008.
data have;
y='10/8/2019';
run;
data want;
set have;
y1=input(y,anydtdte.);
format y1 yymmddn8.;
run;
NOTE: your original date 10/8/2019 has the 8 in the second position, I assume it is day 8 of month 10, and so this output produces a value of Y1 that has day 8 of month 10, despite the fact that you specifically asked for 20190810 where the 8 and 10 have been reversed. When you provide examples of dates, and the month is <=12 and the day is <=12, we don't know which is the month and which is the day, and so your example data could be improved to make this clear.
... View more