IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to select no. of year from current date in REORG utility


IBM Mainframe Forums -> DB2
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
GaganGarg

Active User


Joined: 31 Mar 2010
Posts: 134
Location: India

PostPosted: Fri Sep 03, 2010 3:46 pm
Reply with quote

Hi,

I want to run REORG utility for one of the tables.

Below is the jcl that I am using:

Code:

//REORG01   EXEC PGM=DSNUTILB,PARM=(DB2F,'ABCJ904')                   
//ABNLIGNR  DD DUMMY                                                   
//DSSPRINT  DD SYSOUT=*                                               
//SYSPRINT  DD SYSOUT=*                                               
//SYSUDUMP  DD SYSOUT=Z                                               
//UTPRINT   DD SYSOUT=*                                               
//SYSOUT    DD SYSOUT=*                                               
//SORTOUT   DD SPACE=(CYL,(300,300),RLSE),VOLUME=(,,,59)               
//SYSUT1    DD SPACE=(CYL,(300,300),RLSE),VOLUME=(,,,59)               
//SYSREC    DD SPACE=(CYL,(300,300),RLSE),VOLUME=(,,,59)               
//SYSPUNCH  DD SPACE=(CYL,(2,1),RLSE)                                 
//SYSDISC   DD DSN=OPERA12.DISCARD(+1),                       
//             DISP=(NEW,CATLG,CATLG),UNIT=(VTAPE,,DEFER),             
//             VOLUME=(,,,59),                                         
//             DCB=(HBC.DSCB,BLKSIZE=32760,DEN=4)                     
//SLSCOPY   DD DSN=OPERA12.SSLS001(+1),               
//             DISP=(NEW,CATLG,CATLG),UNIT=(VTAPE,,DEFER),             
//             VOLUME=(,,,59),                                         
//             DCB=(HBC.DSCB,BLKSIZE=32760,DEN=4)     
//SYSIN     DD *
   REORG TABLESPACE DSLS001F.SSLS001         LOG NO             
      COPYDDN (SLSCOPY)                                     
      DISCARD FROM TABLE DEVF.TSLS001_HST             
      WHEN (WK_CCYY <= YEARS(CURRENT DATE - 2 YEAR)                                 
      SORTDATA                                               
       SHRLEVEL REFERENCE                                   
/*


It is throwing MAXCC=08 which is shown below:
Code:

******************************** TOP OF DATA **********************************
 DSNUGUTC - OUTPUT START FOR UTILITY, UTILID = IMZJ904                         
 DSNUGTIS - PROCESSING SYSIN AS EBCDIC                                         
 DSNUGPRW -  REORG TABLESPACE DSLS001F.SSLS001         LOG NO                 
 DSNUGPRW -       COPYDDN (SLSCOPY)                                           
 DSNUGPRW -       DISCARD FROM TABLE DEVF.TSLS001_HST                   
 DSNUGPRW -       WHEN (WK_CCYY <= YEARS(CURRENT DATE - 2 YEAR))               
 DSNUGPRW - INVALID KEYWORD - CURRENT                                         
 DSNUGPRW -       SORTDATA                                                     
 DSNUGPRW -        SHRLEVEL REFERENCE                                         
 DSNUGBAC - UTILITY EXECUTION TERMINATED, HIGHEST RETURN CODE=8               
******************************* BOTTOM OF DATA ********************************


Here WK_CCYY is a column in the table TSLS001_HST which contains the YEAR only. so i want to select the year portion of (CURRENT DATE - 2).
Can anybody please help me?

PS: JCL works fine for WK-CCYY < CURRENT DATE - 2 YEAR
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Fri Sep 03, 2010 7:24 pm
Reply with quote

Hello,

Quote:
JCL works fine for WK-CCYY < CURRENT DATE - 2 YEAR
Then why was YEARS added to the statement. . . icon_confused.gif
Back to top
View user's profile Send private message
Kjeld

Active User


Joined: 15 Dec 2009
Posts: 365
Location: Denmark

PostPosted: Sat Sep 04, 2010 3:40 am
Reply with quote

dick scherrer wrote:
Hello,

Quote:
JCL works fine for WK-CCYY < CURRENT DATE - 2 YEAR
Then why was YEARS added to the statement. . . icon_confused.gif

As Dick hinted, full SQL syntax is not permissible in control statements for the utility.

Check the utility manual. You will probably have to have a column with DATE format in your table, in order to use the quoted syntax.
Back to top
View user's profile Send private message
GuyC

Senior Member


Joined: 11 Aug 2009
Posts: 1281
Location: Belgium

PostPosted: Mon Sep 06, 2010 12:03 pm
Reply with quote

1) as stated : I don't think functions are allowed in DISCARD option
2) There isn't a function called years().
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DB2

 


Similar Topics
Topic Forum Replies
No new posts Replacing 'YYMMDD' with date, varying... SYNCSORT 3
No new posts Modifying Date Format Using DFSORT DFSORT/ICETOOL 9
No new posts Reorg abended with REASON=X'00E40347' DB2 2
No new posts To get the the current time DFSORT/ICETOOL 13
No new posts Need to convert date format DFSORT/ICETOOL 20
Search our Forums:

Back to Top