465: /*
466: list all versions
467: */
468: make_LOV(p_rule,
469: uv.unit_cd||'.'||IGS_GE_NUMBER.TO_CANN(uv.version_number),
470: uv.short_title||' ('||uv.unit_status||')',
471: 'Y');
472: END LOOP;
473: IF v_no_units
583: v_unit_set_cd := us.unit_set_cd;
584: /*
585: list all versions
586: */
587: make_LOV(p_rule,us.unit_set_cd||'.'||IGS_GE_NUMBER.TO_CANN(us.version_number),
588: us.short_title||' ('||us.unit_set_status||')',
589: 'Y');
590: END LOOP;
591: IF v_no_units
702: /*
703: list all versions
704: */
705: make_LOV(p_rule,
706: cv.course_cd||'.'||IGS_GE_NUMBER.TO_CANN(cv.version_number),
707: cv.short_title||' ('||cv.course_status||')',
708: 'Y');
709: END LOOP;
710: IF v_no_members
789: */
790: v_dash := INSTR(v_sub_str, '-');
791: IF v_dash = 0
792: THEN
793: v_lower := IGS_GE_NUMBER.TO_NUM(v_sub_str);
794: v_upper := v_lower;
795: ELSE
796: /*
797: dash in sub-string, split lower and upper
795: ELSE
796: /*
797: dash in sub-string, split lower and upper
798: */
799: v_lower := IGS_GE_NUMBER.TO_NUM(SUBSTR(v_sub_str, 1, v_dash - 1));
800: v_upper := IGS_GE_NUMBER.TO_NUM(SUBSTR(v_sub_str, v_dash + 1));
801: END IF;
802: IF v_lower IS NOT NULL
803: THEN
796: /*
797: dash in sub-string, split lower and upper
798: */
799: v_lower := IGS_GE_NUMBER.TO_NUM(SUBSTR(v_sub_str, 1, v_dash - 1));
800: v_upper := IGS_GE_NUMBER.TO_NUM(SUBSTR(v_sub_str, v_dash + 1));
801: END IF;
802: IF v_lower IS NOT NULL
803: THEN
804: /*
853: THEN
854: /*
855: single version
856: */
857: v_new_versions := v_new_versions||IGS_GE_NUMBER.TO_CANN(v_lower);
858: ELSE
859: /*
860: range
861: */
858: ELSE
859: /*
860: range
861: */
862: v_new_versions := v_new_versions||IGS_GE_NUMBER.TO_CANN(v_lower)||'-'||IGS_GE_NUMBER.TO_CANN(v_upper);
863: END IF;
864: END IF;
865: v_lower := NULL;
866: END;
983: END IF;
984: /*
985: convert and validate number
986: */
987: p_number := IGS_GE_NUMBER.TO_NUM(SUBSTR(p_rule,v_first,v_count));
988: EXCEPTION
989: WHEN VALUE_ERROR THEN
990: EXIT;
991: END;
2083: RETURN v_desired_str;
2084: END IF;
2085: FOR i IN v_tab_str.FIRST..v_tab_str.LAST LOOP
2086: IF v_tab_str(i) = cst_spacemod THEN
2087: v_tab_str_f (ctr_f) := IGS_GE_NUMBER.TO_CANN(i);
2088: ctr_f := ctr_f+1;
2089: END IF;
2090: END LOOP;
2091: FOR i IN v_tab_str_f.FIRST..v_tab_str_f.LAST LOOP
2091: FOR i IN v_tab_str_f.FIRST..v_tab_str_f.LAST LOOP
2092: v_out_str1 := v_out_str1 || v_tab_str_f(i);
2093: END LOOP;
2094: FOR i IN v_tab_str_f.FIRST..v_tab_str_f.LAST LOOP
2095: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) = '{' OR
2096: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) NOT IN (cst_spacemod) THEN
2097: v_start_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2098: END IF;
2099: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))+1) NOT IN (cst_spacemod) THEN
2092: v_out_str1 := v_out_str1 || v_tab_str_f(i);
2093: END LOOP;
2094: FOR i IN v_tab_str_f.FIRST..v_tab_str_f.LAST LOOP
2095: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) = '{' OR
2096: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) NOT IN (cst_spacemod) THEN
2097: v_start_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2098: END IF;
2099: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))+1) NOT IN (cst_spacemod) THEN
2100: v_end_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2093: END LOOP;
2094: FOR i IN v_tab_str_f.FIRST..v_tab_str_f.LAST LOOP
2095: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) = '{' OR
2096: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) NOT IN (cst_spacemod) THEN
2097: v_start_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2098: END IF;
2099: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))+1) NOT IN (cst_spacemod) THEN
2100: v_end_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2101: END IF;
2095: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) = '{' OR
2096: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) NOT IN (cst_spacemod) THEN
2097: v_start_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2098: END IF;
2099: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))+1) NOT IN (cst_spacemod) THEN
2100: v_end_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2101: END IF;
2102: IF v_start_pos IS NOT NULL OR v_end_pos is NOT NULL THEN
2103: IF v_start_pos IS NOT NULL THEN
2096: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))-1) NOT IN (cst_spacemod) THEN
2097: v_start_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2098: END IF;
2099: IF v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i))+1) NOT IN (cst_spacemod) THEN
2100: v_end_pos := IGS_GE_NUMBER.TO_NUM(v_tab_str_f(i));
2101: END IF;
2102: IF v_start_pos IS NOT NULL OR v_end_pos is NOT NULL THEN
2103: IF v_start_pos IS NOT NULL THEN
2104: v_tab_pos(ctr_pos).start_pos := v_start_pos;
2117: v_end_pos := NULL;
2118: END LOOP;
2119: -- filter out NOCOPY unwanted rows from v_tab_pos
2120: FOR i IN v_tab_pos.FIRST..v_tab_pos.LAST LOOP
2121: IF (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = '{' OR
2122: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = '}') OR
2123: (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = ',' OR
2124: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = ',')THEN
2125: v_tab_pos_f(ctr_pos_f).start_pos := v_tab_pos(i).start_pos;
2118: END LOOP;
2119: -- filter out NOCOPY unwanted rows from v_tab_pos
2120: FOR i IN v_tab_pos.FIRST..v_tab_pos.LAST LOOP
2121: IF (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = '{' OR
2122: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = '}') OR
2123: (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = ',' OR
2124: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = ',')THEN
2125: v_tab_pos_f(ctr_pos_f).start_pos := v_tab_pos(i).start_pos;
2126: v_tab_pos_f(ctr_pos_f).end_pos := v_tab_pos(i).end_pos;
2119: -- filter out NOCOPY unwanted rows from v_tab_pos
2120: FOR i IN v_tab_pos.FIRST..v_tab_pos.LAST LOOP
2121: IF (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = '{' OR
2122: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = '}') OR
2123: (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = ',' OR
2124: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = ',')THEN
2125: v_tab_pos_f(ctr_pos_f).start_pos := v_tab_pos(i).start_pos;
2126: v_tab_pos_f(ctr_pos_f).end_pos := v_tab_pos(i).end_pos;
2127: ctr_pos_f := ctr_pos_f + 1;
2120: FOR i IN v_tab_pos.FIRST..v_tab_pos.LAST LOOP
2121: IF (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = '{' OR
2122: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = '}') OR
2123: (v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).start_pos) - 1) = ',' OR
2124: v_tab_str(IGS_GE_NUMBER.TO_NUM(v_tab_pos(i).end_pos) +1) = ',')THEN
2125: v_tab_pos_f(ctr_pos_f).start_pos := v_tab_pos(i).start_pos;
2126: v_tab_pos_f(ctr_pos_f).end_pos := v_tab_pos(i).end_pos;
2127: ctr_pos_f := ctr_pos_f + 1;
2128: END IF;