1: FUNCTION new_sort_key (v_old_sort_key IN bm_list.local_sort_key%TYPE) RETURN bm_list.local_sort_key%TYPE
2: IS
3: v_chr_1 char;
4: v_chr_2 char;
5: v_chr_3 char;
6: v_carry INTEGER;
7: BEGIN
8: IF v_old_sort_key IS null THEN
9: RETURN '000';
10: END IF;
11:
12: v_chr_1 := substr(v_old_sort_key, 1, 1);
13: v_chr_2 := substr(v_old_sort_key, 2, 1);
14: v_chr_3 := substr(v_old_sort_key, 3, 1);
15:
16: inc_char_for_sort_key(v_chr_3, v_carry);
17: IF v_carry = 1 THEN
18: inc_char_for_sort_key(v_chr_2, v_carry);
19: IF v_carry = 1 THEN
20: inc_char_for_sort_key(v_chr_1, v_carry);
21: END IF;
22: END IF;
23:
24: RETURN v_chr_1 || v_chr_2 || v_chr_3;
25: END new_sort_key;
|