Hi, I need to migrate a SAS batch job from z/OS to run on Linux system. The job consists of a DB2/DXT step that extracts selected columns from a large DB2 table on z/OS to a flat file before passing the file on to the SAS step for further processing: //STEP1 EXEC PGM=IKJEFT01,REGION=4096K,TIME=100 //SYSPRINT DD DSN=ABC.DB2LOG,DISP=MOD //SYSOUT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSABEND DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSDUMP DD SYSOUT=* //DSNTRACE DD SYSOUT=* //SYSTSIN DD * PROF PREF(JBGM) DSN SYSTEM(DSN) RUN PROGRAM(DVRE0000) - PLAN(DXT) - LIBRARY('ABC.DXTLOAD') END //SYSIN DD *,DLM=$$ SUBMIT EXTID=JBGMX, DBS=DB2,FORMAT=EBCDIC,EXTDATA=XDATA,CD=JCS,JCS=JCSOUT EXTRACT SELECT COLA, COLB, COLC FROM DB100.TBL100 WHERE COLA = 'B' ; $$ /* //XDATA DD DSN=ABC.TBL100,DISP=(NEW,CATLG,DELETE), // UNIT=SCRTCH,SPACE=(TRK,(500,50),RLSE), // DCB=(RECFM=FB,LRECL=100,BLKSIZE=28000), // VOL=(,,,10) //JCSOUT DD * *CD /* What would be the best way (in terms of performance) to convert this job so the DXT step can be eliminated and replaced when running on Linux server? By creating a SAS DATA step view, SQL view, or a SAS/Access view like below? //STEP1 EXEC SAS,TIME=100 ...... //TEMP DD DSN=ABC.TBL100,DISP=(,CATLG,CATLG), // UNIT=SCRTCH,SPACE=(TRK,(200,100),RLSE), // DCB=(DCO01.DSCB) ....... //SYSIN DD * PROC SQL; CONNECT TO DB2 (SSID=DSN); CREATE TABLE TEMP.TBL100 AS SELECT * FROM CONNECTION TO DB2 (SELECT COLA COLB COLC FROM DB100.TB100 WHERE COLA = 'B'); %PUT SQLXRC=**&SQLXRC** SQLXMSG=**&SQLXMSG**; QUIT;
... View more