Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
221 vnguyen 1
CREATE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
2
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
3
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
4
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
5
/* ---------------------------------------------------------------------------
6
    Version: 3.0.0
7
   --------------------------------------------------------------------------- */
8
 
9
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
10
        INDEX BY BINARY_INTEGER;
11
 
12
    version_components VERSION_COMPONENTS_TYPE;
13
    lastDot NUMBER := 0;
14
    currDot NUMBER := 0;
15
 
16
BEGIN
17
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
18
 
19
    IF ( currDot > 0 )
20
    THEN
21
        -- YES dot separator found --
22
        SSV_EXT := GET_V_EXT( SSpkg_version );
23
 
24
        IF NOT SSV_EXT IS NULL
25
        THEN
26
            lastDot := currDot;
27
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
28
 
29
            IF ( currDot > 0 )
30
            THEN
31
                -- XXXX.M.E
32
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
33
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
34
            ELSE
35
                -- XXXX.E
36
                SSV_MM := NULL;
37
                SSV_NMM := SSpkg_version;
38
            END IF;
39
 
40
        ELSE
41
            -- XXXX.M
42
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
43
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
44
 
45
        END IF;
46
 
47
    ELSE
48
        -- NO dot separator found --
49
        -- XXXXXX
50
        SSV_MM  := NULL;
51
        SSV_NMM := SSpkg_version;
52
        SSV_EXT := NULL;
53
 
54
    END IF;
55
 
56
END Split_Version;
57
/