RECOVERY Control Statements and Quotes - DB10007E
search cancel

RECOVERY Control Statements and Quotes - DB10007E

book

Article ID: 118757

calendar_today

Updated On:

Products

Datacom DATACOM - AD

Issue/Introduction

RECOVERY process parses control statement sequentially instead of a complete set.
The RANGEDT control statement didn't stop the execution
RANGEDT='2018103011290020181030113000'
FUNCTION= DB10007E - INVALID FUNCTION
DB10015E - NO EXECUTION DUE TO INDICATED ERROR(S)

Environment

z/os 

Datacom/DB 15.1

Cause

Issue around Quotes and continuation line missing in the BACKWARD/FORWARD RECOVERY command.

Resolution

Example 1; 
//SYSIN DD * Command Input 
RECBASE DBID=1 
RECJOB JOBNAME=PAYCHECK 
RECOVERY OPTION=BACKWARD,SORT=1000,MISMATCH=FAIL 
/* 

Does not show the comma (after FAIL)  because there is no need. There is no other parameter for that RECOVERY command. 

but 

In the below example, a comma is needed for the RECOVERY command to continue next line. 
RANGEDT parameter belongs to RECOVERY command. 
//SYSIN DD * Command Input 
RECBASE DBID=1 
RECJOB JOBNAME=PAYCHECK 
RECOVERY OPTION=BACKWARD,SORT=1000,MISMATCH=FAIL, 
RANGEDT='2018103011290020181030113000' 
/* 

Comma is a parameter separator and a continuation line as described in the doc.  

All the parameters, like RANGEDT , are mentioned with a comma in front, for example: 
",RANGEDT=" or ",OPTION1=" or ",NUMBER=" etc.... 

You would need the same continuation line on the RECJOB command if you had more parameters. 

Additional Information

It is fine to put quotes around "stuff". Examples that work fine are:
 
REPORT AREA='CXX',DBID='0997',TYPE='B'      
                                             
FUNCTION=REPORT                             
   AREA=CXX                                 
   DBID=00997                                
   TYPE=B                                   
 
And:
 
REPORT AREA=RXX,LOGPRINT=DETAIL,                  
   RANGEDT='2017010700000020170107235959'         
                                                   
FUNCTION=REPORT                                    
   AREA=RXX                                       
   LOGPRINT=DETAIL                                
   RANGEDT=2017010700000020170107235959           
 
 
The error INVALID FUNCTION is not because of the quotes, it is a second line and no comma on the first line. For example in the above, if DETAIL had no comma then the REPORT ran without the RANGEDT and then it was thought a new function and is not.