<?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 ERROR 79-322: Expecting a = in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/ERROR-79-322-Expecting-a/m-p/582182#M165541</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have an error and I don't know how to fix it. The problem occurs at the RENAME option in my macro. What is weird is that if I copy the MPRINT statement in the log (see below in Bold) and run it in SAS, I don't have an error and the dataset is created?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code:&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;FONT&gt;%** Input dataset&amp;nbsp; *;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%if %nrbquote(&amp;amp;_DATA_.) ne %str( ) %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%do;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let z=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let _RENAME_=;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if %nrbquote(&amp;amp;_VARSQL_.) ne %str( ) %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do %until(%qscan(%nrbquote(&amp;amp;_VARSQL_.),&amp;amp;z,%str(,))=%str());&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%global var&amp;amp;z;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&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;%let var&amp;amp;z = %qscan(%nrbquote(&amp;amp;_VARSQL_.),&amp;amp;z,%str(,));&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if %varexist(ds=&amp;amp;_DATA_., var=&amp;amp;&amp;amp;var&amp;amp;z) = 1 %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let _RENAME_ = &amp;amp;_RENAME_. &amp;amp;&amp;amp;var&amp;amp;z=_&amp;amp;&amp;amp;var&amp;amp;z;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let z = %eval(&amp;amp;z+1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if %nrbquote(&amp;amp;_RENAME_.) ne %str( ) %then %do; set &amp;amp;_DATA_.(rename=(%bquote(&amp;amp;_RENAME_.))); %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%else %do; set &amp;amp;_DATA_.;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%else %do; %put "&amp;nbsp; ERROR : NO ENTRY DATA SET "; %end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT&gt;NOTE: Line generated by the macro function "BQUOTE".&lt;BR /&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STUDYID=_STUDYID AEREFID=_AEREFID AETERM=_AETERM AESEV=_AESEV AESER=_AESER AEACN=_AEACN AEREL=_AEREL&lt;BR /&gt;&lt;STRONG&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; -------&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&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; 79&lt;/STRONG&gt;&lt;BR /&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! AEOUT=_AEOUT AESCONG=_AESCONG AESDISAB=_AESDISAB AESDTH=_AESDTH AESHOSP=_AESHOSP AESLIFE=_AESLIFE&lt;BR /&gt;MPRINT(CREATESDTM):&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;set data.ae_1 (rename=(STUDYID=_STUDYID AEREFID=_AEREFID AETERM=_AETERM AESEV=_AESEV AESER=_AESER&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;AEACN=_AEACN AEREL=_AEREL AEOUT=_AEOUT AESCONG=_AESCONG AESDISAB=_AESDISAB AESDTH=_AESDTH AESHOSP=_AESHOSP&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;AESLIFE=_AESLIFE AESMIE=_AESMIE AECONTRT=_AECONTRT AESTDY=_AESTDY AEENDY=_AEENDY));&lt;/STRONG&gt;&lt;BR /&gt;SYMBOLGEN:&amp;nbsp; Macro variable _SUB_ resolves to UPCASE(COMPRESS(AEANY)) = "YES"&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;MLOGIC(CREATESDTM):&amp;nbsp; %IF condition %nrbquote(&amp;amp;_SUB_.) ne &amp;#1; &amp;#2; is TRUE&lt;BR /&gt;SYMBOLGEN:&amp;nbsp; Macro variable _SUB_ resolves to UPCASE(COMPRESS(AEANY)) = "YES"&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;MPRINT(CREATESDTM):&amp;nbsp;&amp;nbsp; where UPCASE(COMPRESS(AEANY)) = "YES" ;&lt;BR /&gt;MPRINT(CREATESDTM):&amp;nbsp;&amp;nbsp; run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&lt;STRONG&gt;ERROR 79-322: Expecting a =.&lt;/STRONG&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;Thanks for your help!&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Mon, 19 Aug 2019 17:26:05 GMT</pubDate>
    <dc:creator>BigFoot</dc:creator>
    <dc:date>2019-08-19T17:26:05Z</dc:date>
    <item>
      <title>ERROR 79-322: Expecting a =</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-79-322-Expecting-a/m-p/582182#M165541</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have an error and I don't know how to fix it. The problem occurs at the RENAME option in my macro. What is weird is that if I copy the MPRINT statement in the log (see below in Bold) and run it in SAS, I don't have an error and the dataset is created?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code:&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;FONT&gt;%** Input dataset&amp;nbsp; *;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%if %nrbquote(&amp;amp;_DATA_.) ne %str( ) %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%do;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let z=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let _RENAME_=;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if %nrbquote(&amp;amp;_VARSQL_.) ne %str( ) %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do %until(%qscan(%nrbquote(&amp;amp;_VARSQL_.),&amp;amp;z,%str(,))=%str());&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%global var&amp;amp;z;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&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;%let var&amp;amp;z = %qscan(%nrbquote(&amp;amp;_VARSQL_.),&amp;amp;z,%str(,));&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if %varexist(ds=&amp;amp;_DATA_., var=&amp;amp;&amp;amp;var&amp;amp;z) = 1 %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let _RENAME_ = &amp;amp;_RENAME_. &amp;amp;&amp;amp;var&amp;amp;z=_&amp;amp;&amp;amp;var&amp;amp;z;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let z = %eval(&amp;amp;z+1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if %nrbquote(&amp;amp;_RENAME_.) ne %str( ) %then %do; set &amp;amp;_DATA_.(rename=(%bquote(&amp;amp;_RENAME_.))); %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%else %do; set &amp;amp;_DATA_.;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%else %do; %put "&amp;nbsp; ERROR : NO ENTRY DATA SET "; %end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT&gt;NOTE: Line generated by the macro function "BQUOTE".&lt;BR /&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STUDYID=_STUDYID AEREFID=_AEREFID AETERM=_AETERM AESEV=_AESEV AESER=_AESER AEACN=_AEACN AEREL=_AEREL&lt;BR /&gt;&lt;STRONG&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; -------&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&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; 79&lt;/STRONG&gt;&lt;BR /&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! AEOUT=_AEOUT AESCONG=_AESCONG AESDISAB=_AESDISAB AESDTH=_AESDTH AESHOSP=_AESHOSP AESLIFE=_AESLIFE&lt;BR /&gt;MPRINT(CREATESDTM):&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;set data.ae_1 (rename=(STUDYID=_STUDYID AEREFID=_AEREFID AETERM=_AETERM AESEV=_AESEV AESER=_AESER&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;AEACN=_AEACN AEREL=_AEREL AEOUT=_AEOUT AESCONG=_AESCONG AESDISAB=_AESDISAB AESDTH=_AESDTH AESHOSP=_AESHOSP&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;AESLIFE=_AESLIFE AESMIE=_AESMIE AECONTRT=_AECONTRT AESTDY=_AESTDY AEENDY=_AEENDY));&lt;/STRONG&gt;&lt;BR /&gt;SYMBOLGEN:&amp;nbsp; Macro variable _SUB_ resolves to UPCASE(COMPRESS(AEANY)) = "YES"&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;MLOGIC(CREATESDTM):&amp;nbsp; %IF condition %nrbquote(&amp;amp;_SUB_.) ne &amp;#1; &amp;#2; is TRUE&lt;BR /&gt;SYMBOLGEN:&amp;nbsp; Macro variable _SUB_ resolves to UPCASE(COMPRESS(AEANY)) = "YES"&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;MPRINT(CREATESDTM):&amp;nbsp;&amp;nbsp; where UPCASE(COMPRESS(AEANY)) = "YES" ;&lt;BR /&gt;MPRINT(CREATESDTM):&amp;nbsp;&amp;nbsp; run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;&lt;STRONG&gt;ERROR 79-322: Expecting a =.&lt;/STRONG&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT&gt;Thanks for your help!&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 19 Aug 2019 17:26:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-79-322-Expecting-a/m-p/582182#M165541</guid>
      <dc:creator>BigFoot</dc:creator>
      <dc:date>2019-08-19T17:26:05Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR 79-322: Expecting a =</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-79-322-Expecting-a/m-p/582192#M165549</link>
      <description>&lt;P&gt;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:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
set sashelp.vcolumn (where=(libname = "&amp;amp;lib." and memname = "&amp;amp;data." and /* insert your condition(s) here */)) end=eof;
if _n_ = 1 then call execute("proc datasets library=&amp;amp;lib.; modify &amp;amp;data.; rename");
call execute(cats(' ',name,'=',"&amp;amp;prefix.",name));
if eof then call execute(";quit;");
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;PS I do not think the %bquote is necessary.&lt;/P&gt;</description>
      <pubDate>Mon, 19 Aug 2019 17:44:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-79-322-Expecting-a/m-p/582192#M165549</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-08-19T17:44:55Z</dc:date>
    </item>
  </channel>
</rss>

