• 一个在AS/400 DB2下的存储过程示例


    因程序需要,要在AS/400系统下建立DB2存储过程,参考了很多资料终于写完了一个可以运行的例子.

     1CREATE PROCEDURE CIT003/PSCANO              
     2  (IN LOTNO INT,                                
     3   IN MODELNAME VARCHAR(50),                    
     4   IN STARTNO INT,                              
     5   IN QTY INT,                                  
     6   IN INTDATE INT,                              
     7   IN INTTIME INT)                              
     8   LANGUAGE SQL MODIFIES SQL DATA               
     9   P1:BEGIN                                     
    10   DECLARE I INT;                               
    11   DECLARE ANAMNO CHAR(15);                     
    12   DECLARE BARCODE CHAR(15);                    
    13   DECLARE TMPSTR CHAR(15);                     
    14   DECLARE FRISTNO CHAR(15);                    
    15   DECLARE LASTNO CHAR(15); 
    16   DECLARE LINE INT;
    17
    18   DECLARE S11 CURSOR FOR SELECT SWRKC FROM BPCSFCT/FSO WHERE SORD=LOTNO;
    19   OPEN S11;
    20   FETCH S11 INTO LINE;
    21   CLOSE S11;
    22
    23   SET TMPSTR='00000'||TRIM(CHAR(STARTNO));                                       
    24   SET FRISTNO=TRIM(CHAR(LOTNO))||SUBSTR(TMPSTR,LENGTH(TRIM(TMPSTR))-4,5);  
    25   SET TMPSTR='00000'||TRIM(CHAR(STARTNO+QTY));                       
    26   SET LASTNO=TRIM(CHAR(LOTNO))||SUBSTR(TMPSTR,LENGTH(TRIM(TMPSTR))-4,5);
    27
    28   IF NOT EXISTS (SELECT SCBC FROM BPCSUSRFC/SCA WHERE SCBC>=FRISTNO AND SCBC<=LASTNO) THEN             
    29   SET I=1;                                                           
    30   WHILE (I<=QTY) DO                                                  
    31   SET TMPSTR='00000'||TRIM(CHAR(STARTNO));                           
    32   SET BARCODE=TRIM(CHAR(LOTNO))||SUBSTR(TMPSTR,LENGTH(TRIM(TMPSTR))-4,5); 
    33   INSERT INTO BPCSUSRFC/SCA (SCID,SCFAC,SCDTE,SCWC,SCBC,             
    34                           SCBCTM,SCSO,SCCDT,SCPRD)                   
    35   VALUES ('SC','CF1',INTDATE,LINE,TRIM(BARCODE),INTTIME,LOTNO,
    36           INTDATE,MODELNAME);        
    37   SET I=I+1;               
    38   SET STARTNO=STARTNO+1;   
    39   END WHILE;               
    40   END IF ;                 
    41   END P1;                   
    42                            
  • 相关阅读:
    POJ1222 EXTENDED LIGHTS OUT(熄灯问题)
    注解@AllArgsConstructor @NoArgsConstructor
    jwt
    校验手机号
    name* until
    java中valueof_JAVA String.valueOf()方法的用法说明(在JAVA中 BingDecime b1 = new BigDecimal(Double.toString)
    java 减法精度缺失_java double类型数据加减操作精度丢失解决方法
    java 中的Collection<? extends Object>c是什么意思
    mybatis <if test=""></if>标签0为null 无效的 踩坑
    JAVA8之妙用Optional解决判断Null为空的问题
  • 原文地址:https://www.cnblogs.com/moon25/p/1247143.html
Copyright © 2020-2023  润新知