I don't understand the problem: "I have tried propcase(tranwrd(ADDR,'Cl','Close')) as ADDR. But this only does one name per time." - Please post the code you have used along with the log. So that we what happens actually.
For data cleaning i would always use a data step, the code is easier to debug. One problem could be caused by the length of the variable addr. Is it long enough to hold the additional chars?
A data step could look this:
data want;
set have;
length addr_expanded $ 100;
addr_expanded = tranwrd(addr, 'Rd', 'Road');
addr_expanded = tranwrd(addr_expanded, 'AVE', 'Avenue');
addr_expanded = tranwrd(addr_expanded, 'CL', Close');
run;
... View more