You are out-complicating yourself. I take it you run a SQL select from dictionary.columns to get your variable names. You can do everything much easier by using call execute off sashelp.vcolumn in a data _null_ step:
data _null_;
set sashelp.vcolumn (where=(libname = "&lib." and memname = "&data." and /* insert your condition(s) here */)) end=eof;
if _n_ = 1 then call execute("proc datasets library=&lib.; modify &data.; rename");
call execute(cats(' ',name,'=',"&prefix.",name));
if eof then call execute(";quit;");
run;
PS I do not think the %bquote is necessary.
... View more