Hi:
In most cases, those "unprintable" characters are removed appropriately, as needed in the code and you can see evidence of this in the SYMBOLGEN message:
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
If you look in the documentation:
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#/documentation/cd...
You will discover that some macro values are protected with a "delta" character. The above page says:
beginquote
When the macro processor masks a text string, it masks special characters and mnemonics within the coding scheme, and prefixes and suffixes the string with a hexadecimal character, called a delta character. The prefix character marks the beginning of the string and also indicates what type of macro quoting is to be applied to the string. The suffix character marks the end of the string. The prefix and suffix characters preserve any leading and trailing blanks contained by the string. The hexadecimal characters used to mask special characters and mnemonics and the characters used for the prefix and suffix might vary and are not portable.
There are more hexadecimal combinations possible in each byte than are needed to represent the symbols on a keyboard. Therefore, when a macro quoting function recognizes an item to be masked, the macro processor uses a previously unused hexadecimal combination for the prefix and suffix characters.
endquote
And about THIS error mesage,
ERROR 202-322: The option or parameter is not recognized and will be ignored.
It is saying that there's something about
shoes_&x that it doesn't like (and you're right, it doesn't like those delta characters) But it is easy to get rid of them. Sometimes, you have to remove the special characters yourself.
You will find that exact error message (202-322) in this Tech Support note, AND the note shows how to use the %UNQUOTE function to properly remove the special characters:
http://support.sas.com/kb/17/444.html
Although the note talks mostly about user id and password and needing to unquote, it also shows how this example:
data my_&testvar;
needs to turn into this:
data my_%unquote(&testvar);
And in your case, that would be the equivalent of having
create table shoes_&x as
turn into
create table shoes_%unquote(&x) as
Hope this helps!
cynthia