Hi:
It is unlikely that a detail listing report of a billion records would be very useful to anyone. I'm curious why you're creating an output data set (using OUT=) with PROC REPORT. Given your current code, you're reading a billion records, creating a report file of a billion record and then creating an output dataset of that same billion records. It doesn't seem necessary to me.
On the other hand, if you were to create a SUMMARY report, it might consolidate some of the report rows. For example, if you submitted the following code:
[pre]
ods listing close;
ods html file='c:\test.htm';
proc report data=sashelp.class nowd;
title 'Summary Report';
column age n,sex;
define age / group;
define sex / across 'Gender';
define n / 'Count';
run;
ods html close;
[/pre]
Instead of seeing the 19 report rows (one for each person in SASHELP.CLASS, you would see only 6 report rows, a summary report -- one row for each unique value of AGE in SASHELP.CLASS.
You might get some other ideas about how to use PROC REPORT by referring to this guide on using PROC REPORT in non-interactive mode:
http://support.sas.com/documentation/onlinedoc/v82/techreport_p258.pdf
Perhaps if you could explain what your goal or desired report is, others might have some alternate task, wizard or procedure suggestions.
cynthia