LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (May 2002, week 2)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Tue, 14 May 2002 12:11:52 -0400
Reply-To:   Reddi <reddy_sas2000@YAHOO.COM>
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   Reddi <reddy_sas2000@YAHOO.COM>
Subject:   JCL statement to save SAS dataset permanently in a Library
Content-Type:   text/plain; charset=ISO-8859-1

Hi

I have attached my SAS MVS program along with the JCL statements I have write. I am unable to store the Proc SQl querry data set Hierarchy in the name of Hier as a permanent SAS dataset. Please suggest me the correct JCL statement to save a SAS dataset as a permanent dataset as a member in a library.

Thank You

Reddi

000001 //DA38380H JOB (,02620), 000002 // 'DC4017.NEEL ', 000003 // PRTY=10, 000004 // MSGLEVEL=(1,1), 000005 // MSGCLASS=T, 000006 // NOTIFY=DA38380, 000007 // CLASS=A 000008 //************************************************************ 000009 //* JOB DESCRIPTION * 000010 //* - CIC HIERARCHY EXTRACT *00000120 000011 //************************************************************ 000012 //************************************************************ 000013 //*SAS01 CREATE HIERARCHY EXTRACT FILE *00000120 000014 //************************************************************ 000015 //SAS01 EXEC SAS, 000016 // REGION=4096K, 000017 // SASWK=WRKMVS, 000018 // SOUT=*, 000019 // DB2=Q, 000020 // TIME=60, 000021 // WORK1='30000,10000' 000022 //*HIER DD DSN=DWT.CIC.HIER, 000023 //* SPACE=(250,(10,10),RLSE), 000024 //* DCB=(MODEL,RECFM=FB,LRECL=250,BLKSIZE=0), 000025 //* AVGREC=K, 000026 //* DISP=SHR 000027 //* DISP=(NEW,CATLG,DELETE) 000028 //HIERARCH DD DSN=DWT.CIC.HIERARCH, 000029 // SPACE=(250,(10,10),RLSE), 000030 // DCB=(MODEL,RECFM=FB,LRECL=250,BLKSIZE=0), 000031 // AVGREC=K, 000032 // DISP=SHR 000033 //* DISP=(NEW,CATLG,DELETE) 000034 //SYSIN DD * 000035 *******************************************************************; 000036 * list all LEVELS OF A HIERARCHY *; 000037 *******************************************************************; 000038 000039 000040 000041 PROC SQL; 000042 CONNECT TO DB2(SSID=DB2Q); 000043 000044 CREATE TABLE HIERARCH AS 000045 SELECT * FROM CONNECTION TO DB2( 000046 000047 SELECT CBCHILD.ALIGNMENT_ID CHLDid 000048 , CBCHILD.NAME CHLDname 000049 , CHLDATYP.name CHLDATYP 000050 , CHLDHTYP.name CHLDHTYP 000051 , char(CBCHILD.OPRTNL_START_DATE) CBCSTRT 000052 , char(CBCHILD.OPRTNL_end_DATE) CBCEND 000053 , char(COMBOPAR.START_DATE) COMBSTRT 000054 , char(COMBOPAR.END_DATE) COMBEND 000055 , CBPARENT.ALIGNMENT_ID PARid 000056 , CBPARENT.NAME PARname 000057 , PARHTYP.name PARHTYP 000058 000059 FROM DWSFE000.ALIGNMENT CBCHILD 000060 , DWSFE000.COMBINATON_ALGNMNT COMBOPAR 000061 , DWSFE000.ALIGNMENT CBPARENT 000062 , DWSFE000.ALIGNMENT_TYPE CHLDATYP 000063 , DWSFE000.HIERARCHICAL_TYPE CHLDHTYP 000064 , DWSFE000.HIERARCHICAL_TYPE PARHTYP 000065 000066 WHERE CBCHILD.ALGNMNT_TYPE_CODE = 'CB' 000067 AND CBCHILD.OPRTNL_START_DATE <= CURRENT DATE 000068 AND (CBCHILD.OPRTNL_END_DATE IS NULL 000069 OR CBCHILD.OPRTNL_END_DATE > CURRENT DATE) 000070 000071 AND CBCHILD.ALIGNMENT_ID = COMBOPAR.ALIGNMENT_ID_2 000072 AND COMBOPAR.START_DATE <= CURRENT DATE 000073 AND (COMBOPAR.END_DATE > CURRENT DATE 000074 OR COMBOPAR.END_DATE IS NULL) 000075 000076 AND CBPARENT.ALIGNMENT_ID = COMBOPAR.ALIGNMENT_ID_1 000077 and CBPARENT.ALGNMNT_TYPE_CODE = 'CB' 000078 AND CBPARENT.OPRTNL_START_DATE <= CURRENT DATE 000079 AND (CBPARENT.OPRTNL_END_DATE IS NULL 000080 OR CBPARENT.OPRTNL_END_DATE > CURRENT DATE) 000081 000082 and CBCHILD.ALGNMNT_TYPE_CODE = CHLDATYP.ALGNMNT_TYPE_CODE 000083 and CBCHILD.HRRCHCL_TYPE_CODE = CHLDHTYP.HRRCHCL_TYPE_CODE 000084 and CBPARENT.HRRCHCL_TYPE_CODE = PARHTYP.HRRCHCL_TYPE_CODE 000085 000086 ) 000087 000088 ; 000089 000090 %PUT &SQLXMSG; 000091 DISCONNECT FROM DB2; 000092 000093 000094 DATA _NULL_; 000095 SET HIERARCH; 000096 FILE HIER; 000097 RUN; 000098 /* Commented*/ 000099 /* DATA ABC(KEEP=YEST); 000100 YEST=DATETIME(); 000101 DPART=DATEPART(YEST); 000102 TPART=TIMEPART(YEST); 000103 CALL SYMPUT("TDATE",PUT(DPART,YYMMDD10.)); 000104 CALL SYMPUT("FTIME",PUT(TPART,TIME15.6)); 000105 TODATE = TRIM("&TDATE.")¦¦"-"¦¦TRIM("&FTIME."); 000106 TODATE=COMPRESS(TODATE); 000107 CALL SYMPUT("TODATE",TODATE); 000108 RUN; 000109 000110 DATA WORK1.YESTDATE; 000111 SET ABC; 000112 RUN; 000113 000114 000115 PROC DATASETS; 000116 DELETE ABC; 000117 RUN; 000118 000119 000120 DATA _NULL_; 000121 SET WORK1.YESDATE; 000122 YDPART=DATEPART(YEST); 000123 YTPART=TIMEPART(YEST); 000124 YESTDAY=PUT(YDPART,YYMMDD10.)¦¦"-"¦¦(PUT (YPART,TIME15.6); 000125 YESTDAY=COMPRESS(YESTDAY); 000126 CALL SYMPUT("YESTDAY",YESTDAY); 000127 RUN; 000128 000129 000130 PROC SORT DATA=HIERARCH; 000131 BY CHLDID; 000132 RUN; 000133 000134 000135 PROC SORT DATA=HIERARCH1.TODAY; 000136 BY CHLDID; 000137 RUN; 000138 000139 000140 DATA HIERARCH1.COMPARE HIERARCH1.NEWINTDY 000141 HIERARCHY1.NOTINTDY; 000142 MERGE HIERARCH1.TODAY(IN=A) HIERARCH(IN=B); 000143 BY CHLDID; 000144 IF A AND B THEN OUTPUT HIERARCH1.COMPARE; 000145 IF A AND NOT B THEN OUTPUT HIERARCH1.NOTINTDY; 000146 IF B AND NOT A THEN OUTPUT HIERARCH1.NEWINTDY; 000147 RUN; 000148 000149 000150 DATA HIERARCH1.UPDATE; 000151 SET HEIRARCH1.COMPARE; 000152 WHERE RUDT BETWEEN &YESTDAY. AND &TODATE.; 000153 RUN; 000154 000155 000156 000157 DATA HIERARCH; 000158 SET HIERARCH.TODAY; 000159 RUN; 000160 000161 000162 000163 PROC APPEND BASE=HIERARCH1.UPDATE DATA=HIERARCH1.NEWINTDY; 000164 RUN; 000165 000166 000167 000168 PROC APPEND BASE=HIERARCH1.UPDATE DATA=HIERARCH1.NOTINTDY; 000169 RUN; 000170 000171 000172 000173 DATA UPDATE1 UPDATE2 UPDATE3 UPDATE4 UPDATE5 UPDATE6 000174 UPDATE7 UPDATE8 UPDATE9 UPDATE10 UPDATE11 UPDATE12 000175 UPDATE13 UPDATE14 UPDATE15 UPDATE16 UPDATE17 000176 UPDATE18 UPDATE19 UPDATE20; 000177 SET HIERARCH1.UPDATE NOBS=PARM; 000178 X = CIEL(PARM/20); 000179 SELECT ; 000180 WHEN(_N_ < X ) OUTPUT UPDATE1; 000181 WHEN(_N_ < X*2) OUTPUT UPDATE2; 000182 WHEN(_N_ < X*3) OUTPUT UPDATE3; 000183 WHEN(_N_ < X*4) OUTPUT UPDATE4; 000184 WHEN(_N_ < X*5) OUTPUT UPDATE5; 000185 WHEN(_N_ < X*6) OUTPUT UPDATE6; 000186 WHEN(_N_ < X*7) OUTPUT UPDATE7; 000187 WHEN(_N_ < X*8) OUTPUT UPDATE8; 000188 WHEN(_N_ < X*9) OUTPUT UPDATE9; 000189 WHEN(_N_ < X*10) OUTPUT UPDATE10; 000190 WHEN(_N_ < X*11) OUTPUT UPDATE11; 000191 WHEN(_N_ < X*12) OUTPUT UPDATE12; 000192 WHEN(_N_ < X*13) OUTPUT UPDATE13; 000193 WHEN(_N_ < X*14) OUTPUT UPDATE14; 000194 WHEN(_N_ < X*15) OUTPUT UPDATE15; 000195 WHEN(_N_ < X*16) OUTPUT UPDATE16; 000196 WHEN(_N_ < X*17) OUTPUT UPDATE17; 000197 WHEN(_N_ < X*18) OUTPUT UPDATE18; 000198 WHEN(_N_ < X*19) OUTPUT UPDATE19; 000199 OTHERWISE OUTPUT UPDATE20; 000200 END; 000201 RUN; 000202 000203 000204 */ 000205 /*commented*/ 000206 000207 ****************************************************; 000208 * CREATE THE EXTRACT FILE OF HIER DATA *; 000209 ****************************************************; 000210 DATA _NULL_; 000211 SET HIERARCH; 000212 FILE HIERARCH; 000213 PUT 000214 CHLDID Z9. 000215 '¦' CHLDNAME 000216 '¦' CHLDATYP 000217 '¦' CHLDHTYP 000218 '¦' CBCSTRT 000219 '¦' CBCEND 000220 '¦' COMBSTRT 000221 '¦' COMBEND 000222 '¦' PARid Z9. 000223 '¦' PARname 000224 '¦' PARHTYP 000225 ; 000226 000227 /* 000228 //* ******************************************************************* 000229 //* * STEPFL01 ABEND THE JOB IF THE SAS STEP FAILED. * 000230 //* ******************************************************************* 000231 //STEPFL01 EXEC PGM=STEPFAIL, 000232 // COND=(0,EQ,SAS01.SAS)


Back to: Top of message | Previous page | Main SAS-L page