Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

CREATE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS

    sessionNumber NUMBER := 0;
    iteration NUMBER := 1; 
    rowCnt NUMBER := 0;
    maxIterations       NUMBER := 50;
        
BEGIN
        
   
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
    SELECT sessionNumber, iteration, rc.PV_ID
      FROM RELEASE_CONTENT rc
     WHERE rc.RTAG_ID = nRtag_id;
     
    iteration := iteration + 1;
    LOOP
        
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
                SELECT sessionNumber,     
               iteration,
               dep.DPV_ID
          FROM TEMP_TREE_BROWSE ttb,
               PACKAGE_DEPENDENCIES dep
         WHERE dep.PV_ID = ttb.PV_ID 
           AND ttb.LEVEL_NUM = iteration - 1 
           
         MINUS  
         
        SELECT sessionNumber, iteration, ttb.PV_ID
          FROM TEMP_TREE_BROWSE ttb;   
          
          
         
                
                rowCnt := SQL%ROWCOUNT;
                IF rowCnt > 0 THEN
           iteration := iteration + 1;
                END IF;
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
    END LOOP; 
    
END PAOLO_Build_Tree;
/