<?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: DS2 Hash Package Output Overwrite in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944668#M370128</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/90982"&gt;@slacey&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You probably can add the following before your Proc DS2 statement&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%if (%sysfunc(exist(testtest5))) %then
%do;
   PROC DELETE Data=testtest5; run;
%end;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 19 Sep 2024 20:14:30 GMT</pubDate>
    <dc:creator>AhmedAl_Attar</dc:creator>
    <dc:date>2024-09-19T20:14:30Z</dc:date>
    <item>
      <title>DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944644#M370114</link>
      <description>&lt;P&gt;In the output method for the hash package, how do I specify overwrite? (is it even possible?). For example, the following code runs fine the first time:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;proc ds2;
	data _null_;
		dcl char(20) USUBJID;
		dcl char(8) VSTESTCD;
		dcl char(20) VISIT;
		dcl char(30) VSTPT;
		dcl double rc;

		dcl package hash hw();

		method init();
			hw.ordered('a');
			hw.keys([USUBJID VSTESTCD VISIT VSTPT]);
			hw.dataset(%tslit({select * 
					   from sdtm.vs 
					   where VSTESTCD in ('HEIGHT','WEIGHT')}));
			hw.definedone();
		end;

		method term();
			rc = hw.output('testtest5');
		end;
	enddata;
	run;
quit;&lt;/PRE&gt;
&lt;P&gt;However if I run again the dataset that hw.output tries to use produces an error since it already exists.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Thu, 19 Sep 2024 18:49:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944644#M370114</guid>
      <dc:creator>slacey</dc:creator>
      <dc:date>2024-09-19T18:49:46Z</dc:date>
    </item>
    <item>
      <title>Re: DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944665#M370126</link>
      <description>I don't think such an option exists but might be wrong. &lt;BR /&gt;&lt;BR /&gt;You can work around that by calling function dosubl() to run proc delete before calling the output method.</description>
      <pubDate>Thu, 19 Sep 2024 20:00:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944665#M370126</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2024-09-19T20:00:13Z</dc:date>
    </item>
    <item>
      <title>Re: DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944668#M370128</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/90982"&gt;@slacey&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You probably can add the following before your Proc DS2 statement&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%if (%sysfunc(exist(testtest5))) %then
%do;
   PROC DELETE Data=testtest5; run;
%end;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 19 Sep 2024 20:14:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944668#M370128</guid>
      <dc:creator>AhmedAl_Attar</dc:creator>
      <dc:date>2024-09-19T20:14:30Z</dc:date>
    </item>
    <item>
      <title>Re: DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944669#M370129</link>
      <description>&lt;P&gt;Looks like dosubl isn't recognized in proc ds2 (or it's very possible i was using it wrong). However I was able to just pass it through a sysfunc macro call like so:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;		%if %sysfunc(exist(testtest1)) %then %do;
			%sysfunc(dosubl('proc delete lib=work data=testtest1; run;'));
		%end;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Thank you for the suggestion!&lt;/P&gt;</description>
      <pubDate>Thu, 19 Sep 2024 20:32:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944669#M370129</guid>
      <dc:creator>slacey</dc:creator>
      <dc:date>2024-09-19T20:32:49Z</dc:date>
    </item>
    <item>
      <title>Re: DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944694#M370148</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/90982"&gt;@slacey&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Looks like dosubl isn't recognized in proc ds2 (or it's very possible i was using it wrong). However I was able to just pass it through a sysfunc macro call like so:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;		%if %sysfunc(exist(testtest1)) %then %do;
			%sysfunc(dosubl('proc delete lib=work data=testtest1; run;'));
		%end;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Thank you for the suggestion!&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Why would you need DOSUBL in that case?&amp;nbsp; How is running that macro code different than running this macro code?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%if %sysfunc(exist(testtest1)) %then %do;
  proc delete lib=work data=testtest1; run;
%end;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Or this SAS code (note that PROC DELETE does not have a NOWARN option, but PROC DATASETS does).&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc datasets nowarn nolist lib=work;
  delete testtest1;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 20 Sep 2024 02:16:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944694#M370148</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-09-20T02:16:16Z</dc:date>
    </item>
    <item>
      <title>Re: DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944734#M370153</link>
      <description>&lt;P&gt;You're 100% correct. I wrote the reply in the middle of working on it and came across that exact realization afterwards. In the end I just wrapped the proc delete in the macro exist call and put it all before proc ds2.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Sep 2024 12:35:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944734#M370153</guid>
      <dc:creator>slacey</dc:creator>
      <dc:date>2024-09-20T12:35:21Z</dc:date>
    </item>
    <item>
      <title>Re: DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944755#M370158</link>
      <description>&lt;P&gt;Use the Force &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When a Jedi Knight uses PROC FEDSQL, the proc just deletes data set regardless the data set exists or not &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data class; 
  set sashelp.class;
run;


PROC FEDSQL;
   DROP TABLE TESTTEST5 FORCE; /* no need for conditional execution */
QUIT;

proc ds2;
	data _null_ / OVERWRITE=YES;
		dcl char(20) name;
		dcl char(8) sex;
		dcl double AGE;
		dcl double rc;

		dcl package hash hw();

		method init();
			hw.ordered('a');
			hw.keys([name age]);
			hw.dataset(%tslit({select * 
					   from work.class 
					   where sex in ('F','M')}));
			hw.definedone();
		end;

		method term();
			rc = hw.output('testtest5');
		end;
	enddata;
	run;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;May the Force be with you!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;</description>
      <pubDate>Fri, 20 Sep 2024 14:51:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944755#M370158</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2024-09-20T14:51:40Z</dc:date>
    </item>
    <item>
      <title>Re: DS2 Hash Package Output Overwrite</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944756#M370159</link>
      <description>I really like that. I've been using SAS for years now and it's enlightening to see how much I don't know.</description>
      <pubDate>Fri, 20 Sep 2024 14:53:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DS2-Hash-Package-Output-Overwrite/m-p/944756#M370159</guid>
      <dc:creator>slacey</dc:creator>
      <dc:date>2024-09-20T14:53:25Z</dc:date>
    </item>
  </channel>
</rss>

