「活動ジョブの検査」の拡張 (RUNSQL コマンド)

V7R1 で RUNSQL というコマンドが使えるようになりました。

ほとんど想像どおりの使い方なので、特に説明はしません。
「活動ジョブの検査」の拡張 (CL/ILE CL)」のファイルへの書き込みのところをこれを使って書き換えてみました。

             CHGVAR     VAR(&SQLTEXT)                              +            
                        VALUE('INSERT INTO QCHKACTJ2 +                          
                               VALUES(''' |< &JOBNAME |< ''', ''' |< +          
                                             &USRNAME |< ''', ''' |< +          
                                             &JOBNBR  |< ''', ''' |< +          
                                             &JOBSTS  |< ''', ''' |< +          
                                             &ACTSTS  |< ''', '   |< +          
                                             &RUNPTYC |< ', '''   |< +         
                                             &SBSD    |< ''')')                 
             RUNSQL     SQL(&SQLTEXT) COMMIT(*NONE)                             

↑以外ほとんど同じなのですが、一応、全文載せておきますね。

             PGM        PARM(&PARM1 &STS)                                       
             DCL        VAR(&SQLTEXT) TYPE(*CHAR) LEN(512)                      
             DCL        VAR(&PARM1) TYPE(*CHAR) LEN(26)                         
             DCL        VAR(&JOBPARM) TYPE(*CHAR) LEN(26)                       
             DCL        VAR(&JOB) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&USR) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&NBR) TYPE(*CHAR) LEN(6)                            
             DCL        VAR(&STS) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&OBJ) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&USRSPC) TYPE(*CHAR) LEN(20) VALUE('CHKACTJOB +     
                          QTEMP     ')                                          
             DCL        VAR(&JOBNAME) TYPE(*CHAR) LEN(10)                       
             DCL        VAR(&USRNAME) TYPE(*CHAR) LEN(10)                       
             DCL        VAR(&JOBNBR) TYPE(*CHAR) LEN(6)                         
             DCL        VAR(&JOBSTS) TYPE(*CHAR) LEN(10)                        
             DCL        VAR(&LSTJOBE) TYPE(*CHAR) LEN(256)                      
             DCL        VAR(&BIN4) TYPE(*CHAR) LEN(4)                           
             DCL        VAR(&ENTRY) TYPE(*DEC) LEN(8 0)                         
             DCL        VAR(&STR) TYPE(*DEC) LEN(8 0)                           
             DCL        VAR(&OFFSET) TYPE(*DEC) LEN(8 0)                        
             DCL        VAR(&OFFSETB) TYPE(*CHAR) LEN(4)                        
             DCL        VAR(&ENTLEN) TYPE(*DEC) LEN(8 0)                        
             DCL        VAR(&ENTLENB) TYPE(*CHAR) LEN(4)                        
                                                                                
             DCL        VAR(&ERR_DATA) TYPE(*CHAR) LEN(116)                     
     /*      DCL        VAR(&MSGID) TYPE(*CHAR) STG(*DEFINED) LEN(7) +          
                          DEFVAR(&ERR_DATA 9)             */                    
                                                                                
             DCL        VAR(&KEYSTART) TYPE(*DEC) LEN(9 0)                      
             DCL        VAR(&I) TYPE(*DEC) LEN(5 0)                             
             DCL        VAR(&J) TYPE(*DEC) LEN(5 0)                             
             DCL        VAR(&KEYCOUNT) TYPE(*DEC) LEN(9 0)                      
             DCL        VAR(&KEYSIZE) TYPE(*DEC) LEN(9 0)                       
             DCL        VAR(&KEYSIZE4) TYPE(*DEC) LEN(9 0)                      
             DCL        VAR(&KEYPOS) TYPE(*DEC) LEN(9 0)                        
                                                                                
             DCL        VAR(&KEYCOUNTB) TYPE(*CHAR) LEN(4)                      
             DCL        VAR(&KEYSIZEB) TYPE(*CHAR) LEN(4)                       
                                                                                
             DCL        VAR(&REQKEYS3) TYPE(*CHAR) LEN(12)                      
             DCL        VAR(&REQKEY1) TYPE(*CHAR) STG(*DEFINED) LEN(4) +        
                          DEFVAR(&REQKEYS3 1)                                   
             DCL        VAR(&REQKEY2) TYPE(*CHAR) STG(*DEFINED) LEN(4) +        
                          DEFVAR(&REQKEYS3 5)                                   
             DCL        VAR(&REQKEY3) TYPE(*CHAR) STG(*DEFINED) LEN(4) +        
                          DEFVAR(&REQKEYS3 9)                                   
                                                                                
             DCL        VAR(&KEYINFO) TYPE(*CHAR) LEN(36)                       
             DCL        VAR(&KEYDATA) TYPE(*CHAR) LEN(20)                       
             DCL        VAR(&KEYINTB) TYPE(*CHAR) LEN(4)                        
             DCL        VAR(&KEYFLD) TYPE(*CHAR) LEN(4)                         
                                                                                
             DCL        VAR(&ACTSTS) TYPE(*CHAR) LEN(4)                         
             DCL        VAR(&RUNPTY) TYPE(*DEC) LEN(2 0)                        
             DCL        VAR(&RUNPTYC) TYPE(*CHAR) LEN(2)                        
             DCL        VAR(&SBSD) TYPE(*CHAR) LEN(10)                          
                                                                                
             CHGVAR     VAR(&JOB) VALUE(%SST(&PARM1 1 10))                      
             CHGVAR     VAR(&USR) VALUE(%SST(&PARM1 11 10))                     
             CHGVAR     VAR(&NBR) VALUE(%SST(&PARM1 21 6))                      
             IF         COND(&JOB = '          ') THEN(CHGVAR VAR(&JOB) +       
                          VALUE('*ALL     '))                                   
             IF         COND(&USR = '          ') THEN(CHGVAR VAR(&USR) +       
                          VALUE('*ALL     '))                                   
             IF         COND(&NBR = '      ') THEN(CHGVAR VAR(&NBR) +           
                          VALUE('*ALL  '))                                      
             IF         COND(&STS = '          ') THEN(CHGVAR VAR(&STS) +       
                          VALUE('*ALL     '))                                   
                                                                                
             CHGVAR     VAR(&OBJ) VALUE(%SST(&USRSPC 1 10))                     
             DLTUSRSPC  USRSPC(QTEMP/&OBJ)                                      
             MONMSG     MSGID(CPF0000)                                          
             CLRPFM     FILE(QCHKACTJ2)                                         
             CALL       PGM(QUSCRTUS) PARM(&USRSPC 'CHKACTJOB ' +               
                          X'00001000' ' ' '*ALL      ' 'CHKACTJOB +             
                          TEMPORARY USER SPACE')                                
             CHGVAR     VAR(%SST(&JOBPARM 1 10)) VALUE(&JOB)                    
             CHGVAR     VAR(%SST(&JOBPARM 11 10)) VALUE(&USR)                   
             CHGVAR     VAR(%SST(&JOBPARM 21 6)) VALUE(&NBR)                    
                                                                                
             CHGVAR     VAR(&I) VALUE(0)                                        
                                                                                
             CHGVAR     %BIN(&REQKEY1)   '0101' /* Active Status */             
             CHGVAR     %BIN(&REQKEY2)   '1802' /* RUNPTY */                    
             CHGVAR     %BIN(&REQKEY3)   '1906' /* SBSD */                      
                                                                                
             CALL       PGM(QUSLJOB) PARM(&USRSPC 'JOBL0200' &JOBPARM &STS +    
                          &ERR_DATA '*' X'00000003' &REQKEYS3)                  
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC X'00000085' X'00000004' +    
                          &BIN4)                                                
             CHGVAR     VAR(&ENTRY) VALUE(%BIN(&BIN4))                          
             IF         COND(&ENTRY = 0) THEN(GOTO CMDLBL(NOJOB))               
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC X'00000089' X'00000004' +    
                          &ENTLENB)                                             
             CHGVAR     VAR(&ENTLEN) VALUE(%BIN(&ENTLENB))                      
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC X'0000007D' X'00000004' +    
                          &OFFSETB)                                             
             CHGVAR     VAR(&OFFSET) VALUE(%BIN(&OFFSETB))                      
             CHGVAR     VAR(&STR) VALUE(&OFFSET + 1)                            
             CHGVAR     VAR(%BIN(&BIN4)) VALUE(&STR)                            
                                                                                
 RTV_JOB:    CHGVAR     VAR(&I) VALUE(&I + 1)                                   
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC &BIN4 &ENTLENB &LSTJOBE)     
             CHGVAR     VAR(&JOBNAME) VALUE(%SST(&LSTJOBE 1 10))                
             CHGVAR     VAR(&USRNAME) VALUE(%SST(&LSTJOBE 11 10))               
             CHGVAR     VAR(&JOBNBR) VALUE(%SST(&LSTJOBE 21 6))                 
             CHGVAR     VAR(&JOBSTS) VALUE(%SST(&LSTJOBE 43 10))                
                                                                                
             CHGVAR     VAR(&KEYCOUNTB) VALUE(%SST(&LSTJOBE 61 4))              
             CHGVAR     VAR(&KEYCOUNT) VALUE(%BIN(&KEYCOUNTB))                  
                                                                                
             CHGVAR     VAR(&KEYSTART) VALUE(65)                                
                                                                                
             CHGVAR     VAR(&KEYSIZEB) VALUE(%SST(&LSTJOBE 65 4))               
             CHGVAR     VAR(&KEYSIZE) VALUE(%BIN(&KEYSIZEB))                    
                                                                                
 RTV_KEY:    CHGVAR     VAR(&J) VALUE(&J + 1)                                   
             CHGVAR     VAR(&KEYSIZE4) VALUE(&KEYSIZE + 4)                      
             CHGVAR     VAR(&KEYINFO) VALUE(%SST(&LSTJOBE &KEYSTART +           
                          &KEYSIZE4))                                           
             CHGVAR     VAR(&KEYFLD) VALUE(%SST(&KEYINFO 5 4))                  
             CHGVAR     VAR(&KEYDATA) VALUE(%SST(&KEYINFO 17 20))               
                                                                                
             SELECT                                                             
                WHEN       COND(&KEYFLD = &REQKEY1) THEN(CHGVAR +               
                             VAR(&ACTSTS) VALUE(%SST(&KEYDATA 1 4)))            
                WHEN       COND(&KEYFLD = &REQKEY2) THEN(DO)                    
                   CHGVAR     VAR(&KEYINTB) VALUE(%SST(&KEYDATA 1 4))           
                   CHGVAR     VAR(&RUNPTY) VALUE(%BIN(&KEYINTB))                
                ENDDO                                                           
                WHEN       COND(&KEYFLD = &REQKEY3) THEN(CHGVAR VAR( +          
                             &SBSD) VALUE(%SST(&KEYDATA 1 10)))                 
             ENDSELECT                                                          
                                                                                
             IF         COND(&KEYCOUNT = &J) THEN(DO)                           
                CHGVAR     VAR(&J) VALUE(0)                                     
                GOTO       CMDLBL(OUT)                                          
             ENDDO                                                              
                                                                                
             CHGVAR     VAR(&KEYSTART) VALUE(&KEYSTART + &KEYSIZE)              
             CHGVAR     VAR(&KEYPOS) VALUE(&KEYSIZE + 1)                        
             CHGVAR     VAR(&KEYSIZEB) VALUE(%SST(&KEYINFO &KEYPOS 4))          
             CHGVAR     VAR(&KEYSIZE) VALUE(%BIN(&KEYSIZEB))                    
                                                                                
             GOTO       RTV_KEY                                                 
                                                                                
 OUT:        CHGVAR     VAR(&RUNPTYC) VALUE(&RUNPTY)                            
             CHGVAR     VAR(&SQLTEXT)                              +            
                        VALUE('INSERT INTO QCHKACTJ2 +                          
                               VALUES(''' |< &JOBNAME |< ''', ''' |< +          
                                             &USRNAME |< ''', ''' |< +          
                                             &JOBNBR  |< ''', ''' |< +          
                                             &JOBSTS  |< ''', ''' |< +          
                                             &ACTSTS  |< ''', '   |< +          
                                             &RUNPTYC |< ', '''   |< +         
                                             &SBSD    |< ''')')                 
             RUNSQL     SQL(&SQLTEXT) COMMIT(*NONE)                             
                                                                                
             IF         (&ENTRY = &I) GOTO NOJOB                                
                                                                                
             CHGVAR     VAR(&STR) VALUE(&STR + &ENTLEN)                         
             CHGVAR     VAR(%BIN(&BIN4)) VALUE(&STR)                            
                                                                                
             GOTO       RTV_JOB                                                 
                                                                                
 NOJOB:      RETURN                                                             
             ENDPGM                                 

INSERT を項目分だけぶん投げる、というものなので、パフォーマンスは全然よくありません。
CPU を大量に使いますので、あくまで使い方の参考、ということで…

CLRPFM も DELETE に置き換えて、COMMIT は最後にまとめて行うようにしたバージョンも書いてみました。

             PGM        PARM(&PARM1 &STS)                                       
             DCL        VAR(&SQLTEXT) TYPE(*CHAR) LEN(512)                      
             DCL        VAR(&PARM1) TYPE(*CHAR) LEN(26)                         
             DCL        VAR(&JOBPARM) TYPE(*CHAR) LEN(26)                       
             DCL        VAR(&JOB) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&USR) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&NBR) TYPE(*CHAR) LEN(6)                            
             DCL        VAR(&STS) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&OBJ) TYPE(*CHAR) LEN(10)                           
             DCL        VAR(&USRSPC) TYPE(*CHAR) LEN(20) VALUE('CHKACTJOB +     
                          QTEMP     ')                                          
             DCL        VAR(&JOBNAME) TYPE(*CHAR) LEN(10)                       
             DCL        VAR(&USRNAME) TYPE(*CHAR) LEN(10)                       
             DCL        VAR(&JOBNBR) TYPE(*CHAR) LEN(6)                         
             DCL        VAR(&JOBSTS) TYPE(*CHAR) LEN(10)                        
             DCL        VAR(&LSTJOBE) TYPE(*CHAR) LEN(256)                      
             DCL        VAR(&BIN4) TYPE(*CHAR) LEN(4)                           
             DCL        VAR(&ENTRY) TYPE(*DEC) LEN(8 0)                         
             DCL        VAR(&STR) TYPE(*DEC) LEN(8 0)                           
             DCL        VAR(&OFFSET) TYPE(*DEC) LEN(8 0)                        
             DCL        VAR(&OFFSETB) TYPE(*CHAR) LEN(4)                        
             DCL        VAR(&ENTLEN) TYPE(*DEC) LEN(8 0)                        
             DCL        VAR(&ENTLENB) TYPE(*CHAR) LEN(4)                        
                                                                                
             DCL        VAR(&ERR_DATA) TYPE(*CHAR) LEN(116)                     
     /*      DCL        VAR(&MSGID) TYPE(*CHAR) STG(*DEFINED) LEN(7) +          
                          DEFVAR(&ERR_DATA 9)             */                    
                                                                                
             DCL        VAR(&KEYSTART) TYPE(*DEC) LEN(9 0)                      
             DCL        VAR(&I) TYPE(*DEC) LEN(5 0)                             
             DCL        VAR(&J) TYPE(*DEC) LEN(5 0)                             
             DCL        VAR(&KEYCOUNT) TYPE(*DEC) LEN(9 0)                      
             DCL        VAR(&KEYSIZE) TYPE(*DEC) LEN(9 0)                       
             DCL        VAR(&KEYSIZE4) TYPE(*DEC) LEN(9 0)                      
             DCL        VAR(&KEYPOS) TYPE(*DEC) LEN(9 0)                        
                                                                                
             DCL        VAR(&KEYCOUNTB) TYPE(*CHAR) LEN(4)                      
             DCL        VAR(&KEYSIZEB) TYPE(*CHAR) LEN(4)                       
                                                                                
             DCL        VAR(&REQKEYS3) TYPE(*CHAR) LEN(12)                      
             DCL        VAR(&REQKEY1) TYPE(*CHAR) STG(*DEFINED) LEN(4) +        
                          DEFVAR(&REQKEYS3 1)                                   
             DCL        VAR(&REQKEY2) TYPE(*CHAR) STG(*DEFINED) LEN(4) +        
                          DEFVAR(&REQKEYS3 5)                                   
             DCL        VAR(&REQKEY3) TYPE(*CHAR) STG(*DEFINED) LEN(4) +        
                          DEFVAR(&REQKEYS3 9)                                   
                                                                                
             DCL        VAR(&KEYINFO) TYPE(*CHAR) LEN(36)                       
             DCL        VAR(&KEYDATA) TYPE(*CHAR) LEN(20)                       
             DCL        VAR(&KEYINTB) TYPE(*CHAR) LEN(4)                        
             DCL        VAR(&KEYFLD) TYPE(*CHAR) LEN(4)                         
                                                                                
             DCL        VAR(&ACTSTS) TYPE(*CHAR) LEN(4)                         
             DCL        VAR(&RUNPTY) TYPE(*DEC) LEN(2 0)                        
             DCL        VAR(&RUNPTYC) TYPE(*CHAR) LEN(2)                        
             DCL        VAR(&SBSD) TYPE(*CHAR) LEN(10)                          
                                                                                
             CHGVAR     VAR(&JOB) VALUE(%SST(&PARM1 1 10))                      
             CHGVAR     VAR(&USR) VALUE(%SST(&PARM1 11 10))                     
             CHGVAR     VAR(&NBR) VALUE(%SST(&PARM1 21 6))                      
             IF         COND(&JOB = '          ') THEN(CHGVAR VAR(&JOB) +       
                          VALUE('*ALL     '))                                   
             IF         COND(&USR = '          ') THEN(CHGVAR VAR(&USR) +       
                          VALUE('*ALL     '))                                   
             IF         COND(&NBR = '      ') THEN(CHGVAR VAR(&NBR) +           
                          VALUE('*ALL  '))                                      
             IF         COND(&STS = '          ') THEN(CHGVAR VAR(&STS) +       
                          VALUE('*ALL     '))                                   
                                                                                
             CHGVAR     VAR(&OBJ) VALUE(%SST(&USRSPC 1 10))                     
             DLTUSRSPC  USRSPC(QTEMP/&OBJ)                                      
             MONMSG     MSGID(CPF0000)                                          
             RUNSQL     SQL('DELETE FROM QCHKACTJ2') COMMIT(*CS)                
             CALL       PGM(QUSCRTUS) PARM(&USRSPC 'CHKACTJOB ' +               
                          X'00001000' ' ' '*ALL      ' 'CHKACTJOB +             
                          TEMPORARY USER SPACE')                                
             CHGVAR     VAR(%SST(&JOBPARM 1 10)) VALUE(&JOB)                    
             CHGVAR     VAR(%SST(&JOBPARM 11 10)) VALUE(&USR)                   
             CHGVAR     VAR(%SST(&JOBPARM 21 6)) VALUE(&NBR)                    
                                                                                
             CHGVAR     VAR(&I) VALUE(0)                                        
                                                                                
             CHGVAR     %BIN(&REQKEY1)   '0101' /* Active Status */             
             CHGVAR     %BIN(&REQKEY2)   '1802' /* RUNPTY */                    
             CHGVAR     %BIN(&REQKEY3)   '1906' /* SBSD */                      
                                                                                
             CALL       PGM(QUSLJOB) PARM(&USRSPC 'JOBL0200' &JOBPARM &STS +    
                          &ERR_DATA '*' X'00000003' &REQKEYS3)                  
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC X'00000085' X'00000004' +    
                          &BIN4)                                                
             CHGVAR     VAR(&ENTRY) VALUE(%BIN(&BIN4))                          
             IF         COND(&ENTRY = 0) THEN(GOTO CMDLBL(NOJOB))               
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC X'00000089' X'00000004' +    
                          &ENTLENB)                                             
             CHGVAR     VAR(&ENTLEN) VALUE(%BIN(&ENTLENB))                      
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC X'0000007D' X'00000004' +    
                          &OFFSETB)                                             
             CHGVAR     VAR(&OFFSET) VALUE(%BIN(&OFFSETB))                      
             CHGVAR     VAR(&STR) VALUE(&OFFSET + 1)                            
             CHGVAR     VAR(%BIN(&BIN4)) VALUE(&STR)                            
                                                                                
 RTV_JOB:    CHGVAR     VAR(&I) VALUE(&I + 1)                                   
                                                                                
             CALL       PGM(QUSRTVUS) PARM(&USRSPC &BIN4 &ENTLENB &LSTJOBE)     
             CHGVAR     VAR(&JOBNAME) VALUE(%SST(&LSTJOBE 1 10))                
             CHGVAR     VAR(&USRNAME) VALUE(%SST(&LSTJOBE 11 10))               
             CHGVAR     VAR(&JOBNBR) VALUE(%SST(&LSTJOBE 21 6))                 
             CHGVAR     VAR(&JOBSTS) VALUE(%SST(&LSTJOBE 43 10))                
                                                                                
             CHGVAR     VAR(&KEYCOUNTB) VALUE(%SST(&LSTJOBE 61 4))              
             CHGVAR     VAR(&KEYCOUNT) VALUE(%BIN(&KEYCOUNTB))                  
                                                                                
             CHGVAR     VAR(&KEYSTART) VALUE(65)                                
                                                                                
             CHGVAR     VAR(&KEYSIZEB) VALUE(%SST(&LSTJOBE 65 4))               
             CHGVAR     VAR(&KEYSIZE) VALUE(%BIN(&KEYSIZEB))                    
                                                                                
 RTV_KEY:    CHGVAR     VAR(&J) VALUE(&J + 1)                                   
             CHGVAR     VAR(&KEYSIZE4) VALUE(&KEYSIZE + 4)                      
             CHGVAR     VAR(&KEYINFO) VALUE(%SST(&LSTJOBE &KEYSTART +           
                          &KEYSIZE4))                                           
             CHGVAR     VAR(&KEYFLD) VALUE(%SST(&KEYINFO 5 4))                  
             CHGVAR     VAR(&KEYDATA) VALUE(%SST(&KEYINFO 17 20))               
                                                                                
             SELECT                                                             
                WHEN       COND(&KEYFLD = &REQKEY1) THEN(CHGVAR +               
                             VAR(&ACTSTS) VALUE(%SST(&KEYDATA 1 4)))            
                WHEN       COND(&KEYFLD = &REQKEY2) THEN(DO)                    
                   CHGVAR     VAR(&KEYINTB) VALUE(%SST(&KEYDATA 1 4))           
                   CHGVAR     VAR(&RUNPTY) VALUE(%BIN(&KEYINTB))                
                ENDDO                                                           
                WHEN       COND(&KEYFLD = &REQKEY3) THEN(CHGVAR VAR( +          
                             &SBSD) VALUE(%SST(&KEYDATA 1 10)))                 
             ENDSELECT                                                          
                                                                                
             IF         COND(&KEYCOUNT = &J) THEN(DO)                           
                CHGVAR     VAR(&J) VALUE(0)                                     
                GOTO       CMDLBL(OUT)                                          
             ENDDO                                                              
                                                                                
             CHGVAR     VAR(&KEYSTART) VALUE(&KEYSTART + &KEYSIZE)              
             CHGVAR     VAR(&KEYPOS) VALUE(&KEYSIZE + 1)                        
             CHGVAR     VAR(&KEYSIZEB) VALUE(%SST(&KEYINFO &KEYPOS 4))          
             CHGVAR     VAR(&KEYSIZE) VALUE(%BIN(&KEYSIZEB))                    
                                                                                
             GOTO       RTV_KEY                                                 
                                                                                
 OUT:        CHGVAR     VAR(&RUNPTYC) VALUE(&RUNPTY)                            
             CHGVAR     VAR(&SQLTEXT)                              +            
                        VALUE('INSERT INTO QCHKACTJ2 +                          
                               VALUES(''' |< &JOBNAME |< ''', ''' |< +          
                                             &USRNAME |< ''', ''' |< +          
                                             &JOBNBR  |< ''', ''' |< +          
                                             &JOBSTS  |< ''', ''' |< +          
                                             &ACTSTS  |< ''', '   |< +          
                                             &RUNPTYC |< ', '''   |<  +         
                                             &SBSD    |< ''')')                 
             RUNSQL     SQL(&SQLTEXT) COMMIT(*CS)                               
                                                                                
             IF         (&ENTRY = &I) GOTO NOJOB                                
                                                                                
             CHGVAR     VAR(&STR) VALUE(&STR + &ENTLEN)                         
             CHGVAR     VAR(%BIN(&BIN4)) VALUE(&STR)                            
                                                                                
             GOTO       RTV_JOB                                                 
             RUNSQL     SQL(COMMIT) COMMIT(*CS)                                 
                                                                                
 NOJOB:      RETURN                                                             
             ENDPGM  

最初の例よりは CPU を使いませんが、これもやっぱりけっこう使います。ま、あくまで参考ということで…

ちなみに、こちらは書き込み用のファイルにジャーナルがかかっている必要があります。

[Top Pageに戻る]

Ads by TOK2