Paul St Louis
2006-06-22 14:15:44 UTC
I have a 100 meg file from mainframe application to be converted to one big
clean file. Variables were originally separated by long spaces, which I
replaced with tabs. I then broke the file into several excel sheets, due to
65,000 line limitation, and the need to group certain record together. I
wrote a SAS program to Import all files and sort by a tagset number which
identifies each record. SAS error screen shows window is full. Unsuccessful
to (S)ave or (F) to file. I tried exporting to CSV file, but this just
results in another excel file. How can I export to a DAT file, then keep
appending to it, until I have all the information? I just know somewhere
has been stuck in this situation before. I appreciate any help you care to
share.
Here is what I wrote:
*** PURPOSE: USE SEVERAL IMPORT STATEMENTS TO BUILD
100 MEG DATA TABLE FROM SEPERATE EXCEL FILES. ***;
PROC IMPORT OUT=WORK.VENDMISC
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\MISCITEM.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:B14651";
SHEET=MISC;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=VENDMISC; BY GN;
PROC IMPORT OUT=WORK.SUMMONEA
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM1-2.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K46357";
SHEET=ONETWOA;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMONEA; BY GN;
PROC IMPORT OUT=WORK.SUMMONEB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM1-2.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M5618";
SHEET=ONETWOB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMONEB; BY GN;
PROC IMPORT OUT=WORK.SUMMTWOA
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM3-4.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K48756";
SHEET=THRFOURA;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMTWOA; BY GN;
PROC IMPORT OUT=WORK.SUMMTWOB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM3-4.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M4996";
SHEET=THRFOURB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DTA=SUMMTWOB; BY GN;
PROC IMPORT OUT=WORK.SUMMTHRA
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM5-6.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K47185";
SHEET=FIVSIXA;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMTHRA; BY GN;
PROC IMPORT OUT=WORK.SUMMTHRB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM5-6.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M5047";
SHEET=FIVSIXB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMTHRB; BY GN;
PROC IMPORT OUT=WORK.SUMMSA2
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SA2.mdb.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:M14676";
SHEET=SATAB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMSA2; BY GN;
PROC IMPORT OUT=WORK.SUMMFORB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM5-6.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M5047";
SHEET=FIVSIXB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMFORB; BY GN;
PROC IMPORT OUT=WORK.CON4
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\CON4.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:E62499";
SHEET=CON4;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=CON4; BY GN;
PROC IMPORT OUT=WORK.CONTREC
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\CONTREC.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:E2951";
SHEET=CONTREC;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=CONTREC; BY GN;
PROC IMPORT OUT=WORK.INV
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\INV.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:F5";
SHEET=INV;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=INV; BY GN;
PROC IMPORT OUT=WORK.SATAB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SA2.mdb.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:M14676";
SHEET=SATAB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SATAB; BY GN;
PROC IMPORT OUT=WORK.HDR
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\HDR.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:G4698";
SHEET=HDR;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=HDR; BY GN;
PROC APPEND
BASE=IMP1
DATA=IMP2;
RUN;
PROC IMPORT OUT=WORK.CONSUPP
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\CONSUPP.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K40766";
SHEET=SUPPLIERS;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=CONSUPP; BY GN;
/*
PROC EXPORT DATA=CONSUPP OUTFILE='T:\Construction Section\Contract Letting
and Processing\Paul\ITEMBUILD\FINALS\COMPILE.TXT' DBMS=TXT REPLACE;
RUN;
*/
PROC PRINT NOOBS;
OPTIONS LS=240 NODATE;
TITLE1;
RUN;
clean file. Variables were originally separated by long spaces, which I
replaced with tabs. I then broke the file into several excel sheets, due to
65,000 line limitation, and the need to group certain record together. I
wrote a SAS program to Import all files and sort by a tagset number which
identifies each record. SAS error screen shows window is full. Unsuccessful
to (S)ave or (F) to file. I tried exporting to CSV file, but this just
results in another excel file. How can I export to a DAT file, then keep
appending to it, until I have all the information? I just know somewhere
has been stuck in this situation before. I appreciate any help you care to
share.
Here is what I wrote:
*** PURPOSE: USE SEVERAL IMPORT STATEMENTS TO BUILD
100 MEG DATA TABLE FROM SEPERATE EXCEL FILES. ***;
PROC IMPORT OUT=WORK.VENDMISC
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\MISCITEM.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:B14651";
SHEET=MISC;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=VENDMISC; BY GN;
PROC IMPORT OUT=WORK.SUMMONEA
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM1-2.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K46357";
SHEET=ONETWOA;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMONEA; BY GN;
PROC IMPORT OUT=WORK.SUMMONEB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM1-2.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M5618";
SHEET=ONETWOB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMONEB; BY GN;
PROC IMPORT OUT=WORK.SUMMTWOA
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM3-4.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K48756";
SHEET=THRFOURA;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMTWOA; BY GN;
PROC IMPORT OUT=WORK.SUMMTWOB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM3-4.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M4996";
SHEET=THRFOURB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DTA=SUMMTWOB; BY GN;
PROC IMPORT OUT=WORK.SUMMTHRA
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM5-6.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K47185";
SHEET=FIVSIXA;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMTHRA; BY GN;
PROC IMPORT OUT=WORK.SUMMTHRB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM5-6.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M5047";
SHEET=FIVSIXB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMTHRB; BY GN;
PROC IMPORT OUT=WORK.SUMMSA2
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SA2.mdb.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:M14676";
SHEET=SATAB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMSA2; BY GN;
PROC IMPORT OUT=WORK.SUMMFORB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SUMM5-6.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:M5047";
SHEET=FIVSIXB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SUMMFORB; BY GN;
PROC IMPORT OUT=WORK.CON4
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\CON4.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:E62499";
SHEET=CON4;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=CON4; BY GN;
PROC IMPORT OUT=WORK.CONTREC
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\CONTREC.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:E2951";
SHEET=CONTREC;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=CONTREC; BY GN;
PROC IMPORT OUT=WORK.INV
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\INV.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:F5";
SHEET=INV;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=INV; BY GN;
PROC IMPORT OUT=WORK.SATAB
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\SA2.mdb.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:M14676";
SHEET=SATAB;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=SATAB; BY GN;
PROC IMPORT OUT=WORK.HDR
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\HDR.xls"
DBMS=EXCEL REPLACE;
RANGE="A1:G4698";
SHEET=HDR;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=HDR; BY GN;
PROC APPEND
BASE=IMP1
DATA=IMP2;
RUN;
PROC IMPORT OUT=WORK.CONSUPP
DATAFILE="T:\Construction Section\Contract Letting and
Processing\Paul\ITEMBUILD\FINALS\CONSUPP.XLS"
DBMS=EXCEL REPLACE;
RANGE="A1:K40766";
SHEET=SUPPLIERS;
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
TEXTSIZE=32767;
RUN;
PROC SORT DATA=CONSUPP; BY GN;
/*
PROC EXPORT DATA=CONSUPP OUTFILE='T:\Construction Section\Contract Letting
and Processing\Paul\ITEMBUILD\FINALS\COMPILE.TXT' DBMS=TXT REPLACE;
RUN;
*/
PROC PRINT NOOBS;
OPTIONS LS=240 NODATE;
TITLE1;
RUN;