Inside the ods block I have several proc reports (not shown), I want to populate one worksheet with a table using proc print.
For 10000 rows it works, but for the whole table (200k rows) it gives the following error:
ERROR: The SAS System stopped processing this step because of insufficient memory.
options casdatalimit=all;
ods _all_ close;
ods excel file="/caslibs/marketing/testing.xlsx"
options(sheet_interval='none' sheet_name='All VWFS');
proc print data=MKT.FATFISH_LCV2;
run;
ods excel close;
ODS is good for readable reports, not for mass data transfer. Use PROC EXPORT or LIBNAME XLSX.
This solution from @Kurt_Bremser works for me:
options casdatalimit=all;
ods _all_ close;
ods excel file="/caslibs/marketing/testing2.xlsx"
options(sheet_interval='none' sheet_name='All VWFS');
proc print data=MKT.FATFISH_LCV2(obs=1000);
run;
ods excel close;
proc export
data=MKT.FATFISH_LCV2(obs=10000)
file="/caslibs/marketing/testing2.xlsx"
dbms=xlsx
replace
;
sheet="cars";
run;
ODS is good for readable reports, not for mass data transfer. Use PROC EXPORT or LIBNAME XLSX.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.