<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: About an error message when using %str( ) in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125748#M25666</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think your answer is because %str masks some of the characters you used, namely (, ) and blank.&amp;nbsp; Take a look at:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www2.sas.com/proceedings/sugi24/Advtutor/p38-24.pdf" title="http://www2.sas.com/proceedings/sugi24/Advtutor/p38-24.pdf"&gt;http://www2.sas.com/proceedings/sugi24/Advtutor/p38-24.pdf&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Nov 2012 03:47:20 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2012-11-14T03:47:20Z</dc:date>
    <item>
      <title>About an error message when using %str( )</title>
      <link>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125745#M25663</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I run into an error message when using %str() to a macro variable value which conatins a dot "." in CASE--WHEN. here is the code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;data test;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do dt=.,"14NOV2012"d;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;run;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;%let mvar=%str(case dt&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; when . then&amp;nbsp;&amp;nbsp; " "&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; else put(dt,yymmdd10.)&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; end as dtc);&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;proc sql; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp; create table test1 as&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct &amp;amp;mvar&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from test;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if we change the %LET statement as follows, it would be fine:&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;%let mvar=case dt&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; when . then&amp;nbsp;&amp;nbsp; " "&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; else put(dt,yymmdd10.)&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; end as dtc;&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;%let mvar=%quote(case dt&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; when . then&amp;nbsp;&amp;nbsp; " "&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; else put(dt,yymmdd10.)&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; end as dtc);&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;%let mvar=%quote(case dt&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; when . then&amp;nbsp;&amp;nbsp; " "&lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; else put(dt,yymmdd10.)&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 90px;"&gt;&amp;nbsp; end as dtc);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know that the %STR() is not necessary here, but still want to know why there was ERROR message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot in advance!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The error message&amp;nbsp; for the first PROC SQL step is:&lt;/P&gt;&lt;P&gt;NOTE: Line generated by the macro variable "MVAR".&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case dt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when . then&amp;nbsp;&amp;nbsp; " "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else put(dt,yymmdd10.)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end as dtc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76&lt;/P&gt;&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a missing value, (, +, -, BTRIM, CALCULATED, CASE, EXISTS, INPUT, LOWER, NOT, PUT, SELECT, SUBSTRING, TRANSLATE,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPPER, USER, ^, ~.&lt;/P&gt;&lt;P&gt;ERROR 76-322: Syntax error, statement will be ignored.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 202&lt;/P&gt;&lt;P&gt;ERROR 202-322: The option or parameter is not recognized and will be ignored.&lt;/P&gt;&lt;P&gt;1&amp;nbsp; !&amp;nbsp; case dt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when . then&amp;nbsp;&amp;nbsp; " "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else put(dt,yymmdd10.)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end as dtc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&lt;/P&gt;&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: !, !!, &amp;amp;, *, **, +, -, /, &amp;lt;, &amp;lt;=, &amp;lt;&amp;gt;, =, &amp;gt;, &amp;gt;=, ?, AND, BETWEEN,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTAINS, EQ, EQT, GE, GET, GT, GTT, IN, IS, LE, LET, LIKE, LT, LTT, NE, NET, NOT, NOTIN, OR, THEN, ^, ^=, |,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||, ~, ~=&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2012 03:19:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125745#M25663</guid>
      <dc:creator>pobel</dc:creator>
      <dc:date>2012-11-14T03:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: About an error message when using %str( )</title>
      <link>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125746#M25664</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I can't replicate your error.&amp;nbsp; However I sometimes find it is necessary to %UNQUOTE() a macro variable string such as yours.&amp;nbsp; You could try &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;proc sql; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp; create table test1 as&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct %UNQUOTE(&amp;amp;mvar)&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from test;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;quit;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;Richard in Oz&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2012 03:30:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125746#M25664</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2012-11-14T03:30:04Z</dc:date>
    </item>
    <item>
      <title>Re: About an error message when using %str( )</title>
      <link>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125747#M25665</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Richard,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%UNQUOTE() works here. thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There would be no ERROR if we put another %STR() around the dot '.', still cannot figure out why.&lt;/P&gt;&lt;P&gt;%let mvar=%str(case dt&lt;/P&gt;&lt;P&gt;&amp;nbsp; when %str(.) then&amp;nbsp;&amp;nbsp; " "&lt;/P&gt;&lt;P&gt;&amp;nbsp; else put(dt,yymmdd10.)&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; end as dtc);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2012 03:41:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125747#M25665</guid>
      <dc:creator>pobel</dc:creator>
      <dc:date>2012-11-14T03:41:04Z</dc:date>
    </item>
    <item>
      <title>Re: About an error message when using %str( )</title>
      <link>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125748#M25666</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think your answer is because %str masks some of the characters you used, namely (, ) and blank.&amp;nbsp; Take a look at:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www2.sas.com/proceedings/sugi24/Advtutor/p38-24.pdf" title="http://www2.sas.com/proceedings/sugi24/Advtutor/p38-24.pdf"&gt;http://www2.sas.com/proceedings/sugi24/Advtutor/p38-24.pdf&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2012 03:47:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125748#M25666</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-11-14T03:47:20Z</dc:date>
    </item>
    <item>
      <title>Re: About an error message when using %str( )</title>
      <link>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125749#M25667</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As Art points out, %str() masks certain characters, which in practice means that although the character "looks" the same in the log it has a different underlying binary value.&amp;nbsp; SAS Macro quoting can be a bit of a mystery and you often have to experiment a bit (as you did) to get the result you want.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Richard in Oz&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2012 03:58:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125749#M25667</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2012-11-14T03:58:22Z</dc:date>
    </item>
    <item>
      <title>Re: About an error message when using %str( )</title>
      <link>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125750#M25668</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you, Art!&amp;nbsp; &lt;/P&gt;&lt;P&gt;Thanks again, Richard!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Nov 2012 01:09:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/About-an-error-message-when-using-str/m-p/125750#M25668</guid>
      <dc:creator>pobel</dc:creator>
      <dc:date>2012-11-15T01:09:34Z</dc:date>
    </item>
  </channel>
</rss>

