<?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 Open Function with Variable for Data Set Name in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36477#M9157</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your code appears to work if you leave off the extension.&amp;nbsp; e.g., try the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;libname art "c:\art";&lt;/P&gt;&lt;P&gt;data art.test1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain PROMOCODE (1);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data art.test2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data art.test3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain PROMOCODE (1);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data list_to_load;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat mail_file $30.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input mail_file;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;c:\art\test1&lt;/P&gt;&lt;P&gt;c:\art\test2&lt;/P&gt;&lt;P&gt;c:\art\test3&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data lists;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set list_to_load;&lt;/P&gt;&lt;P&gt;&amp;nbsp; dsid=open(mail_file, 'I' , , 'F');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if dsid^=0 then&lt;/P&gt;&lt;P&gt;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if varnum(dsid, 'PROMOCODE')=0 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; column_exists=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 27 Oct 2011 18:59:28 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2011-10-27T18:59:28Z</dc:date>
    <item>
      <title>Open Function with Variable for Data Set Name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36476#M9156</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've been searching for a solution for this problem for the past couple of days with no luck.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a data set with a column called mail_file that has a file paths to other SAS data sets.&amp;nbsp; I want to open those data sets and check to see if certain variables exist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code I came up with:&lt;/P&gt;&lt;P&gt;&lt;A&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;data lists;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set list_to_load;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsid=open(mail_file, 'I' , , 'F');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if dsid^=0 then&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if varnum(dsid, 'PROMOCODE')=0 then &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&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; column_exists=1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;I always get a dsid of 0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;The paths the of the files look like this: S:\Marketing\For_Output\listloadtest.sas7bdat.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Is there any way I can use a variable in the open() function? Or is there another approach I can take to acomplish this task?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Thanks a alot.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;STRONG style="color: #000080; font-size: 12pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 12pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 12pt; font-family: Courier New;"&gt; &lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Oct 2011 18:39:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36476#M9156</guid>
      <dc:creator>mstell</dc:creator>
      <dc:date>2011-10-27T18:39:27Z</dc:date>
    </item>
    <item>
      <title>Open Function with Variable for Data Set Name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36477#M9157</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your code appears to work if you leave off the extension.&amp;nbsp; e.g., try the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;libname art "c:\art";&lt;/P&gt;&lt;P&gt;data art.test1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain PROMOCODE (1);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data art.test2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data art.test3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain PROMOCODE (1);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data list_to_load;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat mail_file $30.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input mail_file;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;c:\art\test1&lt;/P&gt;&lt;P&gt;c:\art\test2&lt;/P&gt;&lt;P&gt;c:\art\test3&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data lists;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set list_to_load;&lt;/P&gt;&lt;P&gt;&amp;nbsp; dsid=open(mail_file, 'I' , , 'F');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if dsid^=0 then&lt;/P&gt;&lt;P&gt;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if varnum(dsid, 'PROMOCODE')=0 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; column_exists=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Oct 2011 18:59:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36477#M9157</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-10-27T18:59:28Z</dc:date>
    </item>
    <item>
      <title>Open Function with Variable for Data Set Name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36478#M9158</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did you try quoting the filename?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; open(quote(trim(mail_file)),.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Otherwise you will need to create a libref pointing the directory and then try to open the file using the traditional libname.member two level dataset name format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fname=scan(mail_file,-1,'/\');&lt;/P&gt;&lt;P&gt;dir=substr(mail_file,1,length(mail_file)-length(fname));&lt;/P&gt;&lt;P&gt;member=scan(fname,1,'.');&lt;/P&gt;&lt;P&gt;libref='MYDATA';&lt;/P&gt;&lt;P&gt;rc=libname(libref,dir,,'access=readonly');&lt;/P&gt;&lt;P&gt;** test for error codes ?? ;&lt;/P&gt;&lt;P&gt;rc=open('MYDATA.'||member,.....)&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Oct 2011 19:42:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36478#M9158</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-10-27T19:42:04Z</dc:date>
    </item>
    <item>
      <title>Open Function with Variable for Data Set Name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36479#M9159</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Thanks for both of your responses!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I &lt;SPAN style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 10pt;"&gt;definitely&lt;/SPAN&gt; needed the trim() function and it looks like the mode I using was not working correctly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I use open(trim(mail_file), , , 'F',) everything works as it should.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Oct 2011 20:09:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Open-Function-with-Variable-for-Data-Set-Name/m-p/36479#M9159</guid>
      <dc:creator>mstell</dc:creator>
      <dc:date>2011-10-27T20:09:14Z</dc:date>
    </item>
  </channel>
</rss>

