Blame | Last modification | View Log | RSS feed
CREATE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)INDEX BY BINARY_INTEGER;version_components VERSION_COMPONENTS_TYPE;lastDot NUMBER := 0;currDot NUMBER := 0;BEGINcurrDot := INSTR ( SSpkg_version, '.', -1 ); -- Find 1st dot from the rightIF ( currDot > 0 )THEN-- YES dot separator found --SSV_EXT := GET_V_EXT( SSpkg_version );IF NOT SSV_EXT IS NULLTHENlastDot := currDot;currDot := INSTR ( SSpkg_version, '.', -1, 2 ); -- Find 2nd dot from the rightIF ( currDot > 0 )THEN-- XXXX.M.ESSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;ELSE-- XXXX.ESSV_MM := NULL;SSV_NMM := SSpkg_version;END IF;ELSE-- XXXX.MSSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );END IF;ELSE-- NO dot separator found ---- XXXXXXSSV_MM := NULL;SSV_NMM := SSpkg_version;SSV_EXT := NULL;END IF;END Split_Version;/