设为首页 收藏本站
查看: 1002|回复: 0

[经验分享] REXX与DB2的交互

[复制链接]

尚未签到

发表于 2016-11-18 08:20:05 | 显示全部楼层 |阅读模式
/**********READDB2********************/                                CHECKDB2: PROCEDURE                                                  
  ADDRESS TSO "SUBCOM DSNREXX"                                         
  IF RC=0 THEN                                                         
  SAY 'IT OK TO USE DSNREXX'                                       
  ELSE                                                                 
  DO                                                                 
  SAY 'SORRY'                                                      
  SAY RC                                                           
  END                                                               
  IF RC <> 0 THEN                                                      
  DO                                                                 
  S_RC = RXSUBCOM(&quot;ADD&quot;,&quot;DSNREXX&quot;,&quot;DSNREXX&quot;)                       
  IF RC <> 0 THEN                                                  
  SAY RC                                                           
  &quot;SUBCOM DSNREXX&quot;                                                
  IF RC=0 THEN                                                     
  SAY 'IT OK TO USE DSNREXX'                                    
  ELSE
  DO                                                        
  SAY 'SORRY'                                             
  EXIT                                                   
  END                                                      
  END                                                            
  RETURN                                                           
  /********************CONNECTDB2*****************/               
  CONNECTDB2: PROCEDURE                                            
  ADDRESS DSNREXX                                                  
  &quot;CONNECT DB9G&quot;                                                   
  IF SQLCODE = 0 THEN                                             
  SAY 'CONNECT OK'                                             
  ELSE                                                            
  DO                                                            
  SAY 'CONNECT ERR'                                            
  SAY SQLCODE                                                  
  EXIT                                                         
  END                                                            
  RETURN   
  /********************READDATA*******************/                    
  READDATA: PROCEDURE                                                  
  ADDRESS TSO                                                         
  DSNX=&quot;'CBK.A3.DB2.KEYWORD'&quot;                                          
  &quot;ALLOC DA(&quot;DSNX&quot;) FI(MYINDA) SHR&quot;                                    
  &quot;EXECIO 1 DISKR MYINDA (STEM NEWVAR.&quot;                                
  &quot;EXECIO 1 DISKR MYINDA (FINIS&quot;                                       
  SAY &quot;FINIS1&quot; RC                                                      
  &quot;FREE F(MYINDA)&quot;                                                     
  SAY &quot;FREE1&quot; RC                                                      
  PARSE VALUE NEWVAR.1 WITH KEYWORD A B CD                             
  SAY &quot;NEWVAR.1&quot; NEWVAR.1                                             
  SAY &quot;KEYWORD&quot; KEYWORD                                                
  ADDRESS DSNREXX                                                      
  SQLSTAT = &quot;SELECT * FROM IBMUSER.BEIFEN WHERE SID > &quot;KEYWORD&quot;&quot;      
  EXECSQL &quot;DECLARE C71 CURSOR WITH HOLD FOR S71&quot;                       
  SAY SQLCODE                                                         
  ADDRESS DSNREXX                                                      
  EXECSQL &quot;PREPARE S71 INTO :OUTSQLDA FROM :SQLSTAT&quot;                  
  SAY &quot;PREPARE&quot; SQLCODE                                                
  &quot;EXECSQL OPEN C71&quot;                                                   
  SAY 'OPEN' SQLCODE                                                   
  SAY RC                                                              
  DO X = 1 TO 5                                                   
  'EXECSQL FETCH C71 USING DESCRIPTOR :OUTSQLDA'               
  IF SQLCODE = 0 THEN                                          
  DO                                                         
  STR = ''                                                
  DO I = 1 TO OUTSQLDA.SQLD                                
  LINE = OUTSQLDA.I.SQLDATA                             
  /*SAY 'LINE IS' LINE*/                                 
  STR = STR || ' ' || LINE                              
  END                                                      
  SAY STR                                                  
  /*  CALL WRITEFILE STR */                                    
  WRITEFILE(STR)                                             
  END                                                        
  ELSE                                                           
  SAY &quot;FIND SQLCODE&quot; SQLCODE                                   
  END                                                               
  EXECSQL &quot;COMMIT&quot;                                                
  RETURN                                                                 
  /*****************WRITEFILE********************************/           
  WRITEFILE: PROCEDURE                                                   
  PARSE ARG STRING1                                                      
  ADDRESS TSO                                                            
  DSN =&quot;'CBK.A3.DB2.READOPT'&quot;                                            
  DSN1=&quot;'CBK.A3.DB2.KEYWORD'&quot;                                            
  &quot;ALLOC DA(&quot;DSN&quot;)  FI(MYOUTDD) MOD&quot;                                    
  &quot;ALLOC DA(&quot;DSN1&quot;) FI(MYKEYDD) SHR&quot;                                    
  &quot;NEWSTACK&quot;                                                            
  PUSH STRING1                                                           
  &quot;EXECIO 1 DISKW MYOUTDD (FINIS&quot;                                       
  PUSH STRING1                                                           
  &quot;EXECIO 1 DISKW MYKEYDD (FINIS&quot;                                       
  SAY &quot;FINIS2&quot; RC                                                        
  &quot;DELSTACK&quot;                                                         
  SAY RC                                                            
  &quot;FREE F(MYOUTDD)&quot;                                                  
  &quot;FREE F(MYKEYDD)&quot;                                                  
  SAY &quot;FREE2&quot; RC                                                     
  RETURN 0                                                           
  /*******************SEND FTP***************/                       
  FTPD: PROCEDURE                                                   
  QUEUE &quot;//IBMUSERA JOB NOTIFY=&SYSUID&quot;                              
  QUEUE &quot;//STEP0    EXEC PGM=FTP,PARM='172.2.238.210'&quot;               
  QUEUE &quot;//OUTPUT   DD SYSOUT=*&quot;                                    
  QUEUE &quot;//SYSPRINT DD SYSOUT=*&quot;                                    
  QUEUE &quot;//INPUT    DD *&quot;                                            
  QUEUE &quot;  IBMUSER&quot;                                                  
  QUEUE &quot;  SYS1   &quot;                                                  
  QUEUE &quot;  PUT 'CBK.A3.DB2.READOPT'&quot;                                 
  QUEUE &quot;  QUIT&quot;                                                     
  QUEUE &quot;/*&quot;                                                         
  QUEUE &quot;//STEP1 EXEC PGM=IEFBR14&quot;                                   
  QUEUE &quot;//DD1   DD   DSN=CBK.A3.DB2.READOPT,&quot;                     
  QUEUE &quot;//        DISP=(SHR,DELETE)&quot;                              
  QUEUE &quot;//STEP2 EXEC PGM=IEFBR14&quot;                                 
  QUEUE &quot;//DD2   DD   DSN=CBK.A3.DB2.READOPT,&quot;                     
  QUEUE &quot;//        DISP=(,CATLG),SPACE=(CYL,(10,10)),&quot;              
  QUEUE &quot;//        RECFM=FB,LRECL=80,BLKSIZE=3200,UNIT=3390&quot;        
  QUEUE &quot;\\&quot;                                                        
  ADDRESS TSO &quot;SUBMIT * END(\\)&quot;                                    
  SAY &quot;ADDRESS TSO&quot; RC                                             
  RETURN

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301878-1-1.html 上篇帖子: db2新建数据库 下篇帖子: DB2 操作命令(下)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表