2017-03-23 7 views
0

가 나는 내가 단지를 붙여 넣은악성 끝 DB2의 SP 코드의 경우에는 여전히

 WHILE (SQLSTATE = '00000') DO 

     IF (SELECT C5STID FROM OS025F WHERE C5OMID = V_OMID) = 30 THEN 

      IF (SELECT COUNT (*) FROM OS085F WHERE J5DLR = P_DLR 
      AND J5OMID = 
      V_OMID AND J5DSID > 0) = 0 THEN 

       INSERT INTO OS108F (L8RGID , L8DLR , L8DESC , L8GOAL , L8TOT) 
       SELECT V_RGID , P_DLR , C5DESC , E2GOAL , 0 
       FROM OS025F AS ORDERMASTER 
       INNER JOIN OS042F AS GOALS ON GOALS . E2OMID = ORDERMASTER . C5OMID 
       WHERE E2DLR = P_DLR 
       AND E2OMID = V_OMID 
       GROUP BY 1 , 2 , C5DESC , E2GOAL ; 

      ELSE IF P_NET = 'Y' THEN 
       INSERT INTO OS108F (L8RGID , L8DLR , L8DESC , L8GOAL , L8TOT ) 
       SELECT V_RGID , P_DLR , C5DESC , E2GOAL , SUM(J5TNDC) 
       FROM OS025F AS ORDERMASTER 
       INNER JOIN OS042F AS GOALS ON GOALS.E2OMID = ORDERMASTER.C5OMID 
       INNER JOIN OS085F AS DEALERORDER ON DEALERORDER.J5OMID = 
       ORDERMASTER.C5OMID AND DEALERORDER.J5DLR = GOALS.E2DLR 
       WHERE E2DLR = P_DLR 
       AND E2OMID = V_OMID 
       AND J5DSID > 0 
       GROUP BY 1, 2, C5DESC, E2GOAL; 

      ELSE 
       INSERT INTO OS108F (L8RGID , L8DLR , L8DESC , L8GOAL , L8TOT) 
       SELECT V_RGID, P_DLR, C5DESC, E2GOAL, SUM(J5TOT) 
       FROM OS025F AS ORDERMASTER 
       INNER JOIN OS042F AS GOALS ON GOALS.E2OMID = ORDERMASTER.C5OMID 
       INNER JOIN OS085F AS DEALERORDER ON DEALERORDER.J5OMID = 
       ORDERMASTER.C5OMID AND DEALERORDER.J5DLR = GOALS.E2DLR 
       WHERE E2DLR = P_DLR 
       AND E2OMID = V_OMID 
       AND J5DSID > 0 
       GROUP BY 1, 2, C5DESC, E2GOAL; 

      END IF ; 

     END IF ; 

     ELSE.... 

경우 해당이없는 종료하는 경우, 내가 장소에서 참조하십시오 DB2의 SP 코드를 가로 질러 온 작동 관련 코드 조각은 여기에 있습니다. 맨 마지막에 Else가 나오기 바로 전에, End If가 2 개 있는데 그 중 1 개가 불필요한 것으로 보입니다. while (첫 번째 줄) 이전의 코드는 커서의 몇 가지 선언 등으로 그다지 중요하지 않습니다. i 탐색기에서 전체 SP 코드를 실행하면 SP가 보석처럼 만들어집니다. End if 때문에 오류가 발생할 것으로 예상됩니다. 하지만 여기에 문제가 내가 이에 상응하는 RPG 코드로 변환하려고하고 컴파일이 실패 ... Endy 자리 작동 오류. 누군가가 왜 컴파일이 실패하지 않는지를 이해할 수 있는지 말해 줄 수 있습니까?

답변

0

실제로 나는 대답을 찾았습니다. 첫 번째 코드에서 If는 else 부분의 If로 실제로 읽혀 야합니다. 그것은 모든 것을 합친다. 동일한 논리가 적용되도록 RPG를 변경했습니다.