@@ -50,11 +50,11 @@ create or replace package body ut_file_mapper is
5050
5151 function build_file_mappings(
5252 a_file_paths ut_varchar2_list,
53- a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map() ,
54- a_regex_pattern varchar2 := gc_file_mapping_regex ,
55- a_object_owner_subexpression positive := gc_regex_owner_subexpression ,
56- a_object_name_subexpression positive := gc_regex_name_subexpression ,
57- a_object_type_subexpression positive := gc_regex_type_subexpression
53+ a_file_to_object_type_mapping ut_key_value_pairs := null ,
54+ a_regex_pattern varchar2 := null ,
55+ a_object_owner_subexpression positive := null ,
56+ a_object_name_subexpression positive := null ,
57+ a_object_type_subexpression positive := null
5858 ) return ut_file_mappings is
5959 begin
6060 return build_file_mappings(
@@ -66,43 +66,53 @@ create or replace package body ut_file_mapper is
6666 function build_file_mappings(
6767 a_object_owner varchar2,
6868 a_file_paths ut_varchar2_list,
69- a_file_to_object_type_mapping ut_key_value_pairs := default_file_to_obj_type_map() ,
70- a_regex_pattern varchar2 := gc_file_mapping_regex ,
71- a_object_owner_subexpression positive := gc_regex_owner_subexpression ,
72- a_object_name_subexpression positive := gc_regex_name_subexpression ,
73- a_object_type_subexpression positive := gc_regex_type_subexpression
69+ a_file_to_object_type_mapping ut_key_value_pairs := null ,
70+ a_regex_pattern varchar2 := null ,
71+ a_object_owner_subexpression positive := null ,
72+ a_object_name_subexpression positive := null ,
73+ a_object_type_subexpression positive := null
7474 ) return ut_file_mappings is
75- l_key_values tt_key_values;
76- l_mappings ut_file_mappings;
77- l_mapping ut_file_mapping;
75+ l_file_to_object_type_mapping ut_key_value_pairs := coalesce(a_file_to_object_type_mapping, default_file_to_obj_type_map());
76+ l_regex_pattern varchar2(4000) := coalesce(a_regex_pattern, gc_file_mapping_regex);
77+ l_object_owner_subexpression positive := coalesce(a_object_owner_subexpression, gc_regex_owner_subexpression);
78+ l_object_name_subexpression positive := coalesce(a_object_name_subexpression, gc_regex_name_subexpression);
79+ l_object_type_subexpression positive := coalesce(a_object_type_subexpression, gc_regex_type_subexpression);
80+
81+ l_key_values tt_key_values;
82+ l_mappings ut_file_mappings;
83+ l_mapping ut_file_mapping;
7884 l_object_type_key varchar2(4000);
7985 l_object_type varchar2(4000);
8086 l_object_owner varchar2(4000);
8187 begin
8288 if a_file_paths is not null then
83- l_key_values := to_hash_table(a_file_to_object_type_mapping );
89+ l_key_values := to_hash_table(l_file_to_object_type_mapping );
8490 l_mappings := ut_file_mappings();
91+
8592 for i in 1 .. a_file_paths.count loop
86- l_object_type_key := upper(regexp_substr(a_file_paths(i), a_regex_pattern,1,1, 'i',a_object_type_subexpression ));
93+ l_object_type_key := upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_type_subexpression ));
8794 if l_key_values.exists(l_object_type_key) then
8895 l_object_type := upper(l_key_values(l_object_type_key));
8996 else
9097 l_object_type := null;
9198 end if;
92- l_object_owner := upper(regexp_substr(a_file_paths(i), a_regex_pattern, 1, 1, 'i', a_object_owner_subexpression));
93- if l_object_owner is null then
94- l_object_owner := coalesce( a_object_owner, sys_context('USERENV', 'CURRENT_SCHEMA') );
95- end if;
99+
100+ l_object_owner := coalesce(
101+ upper(a_object_owner),
102+ upper(regexp_substr(a_file_paths(i), l_regex_pattern, 1, 1, 'i', l_object_owner_subexpression)),
103+ sys_context('USERENV', 'CURRENT_SCHEMA'));
104+
96105 l_mapping := ut_file_mapping(
97- file_name => a_file_paths(i),
106+ file_name => a_file_paths(i),
98107 object_owner => l_object_owner,
99- object_name => upper(regexp_substr(a_file_paths(i), a_regex_pattern , 1, 1, 'i', a_object_name_subexpression )),
100- object_type => l_object_type
108+ object_name => upper(regexp_substr(a_file_paths(i), l_regex_pattern , 1, 1, 'i', l_object_name_subexpression )),
109+ object_type => l_object_type
101110 );
102111 l_mappings.extend();
103112 l_mappings(l_mappings.last) := l_mapping;
104113 end loop;
105114 end if;
115+
106116 return l_mappings;
107117 end;
108118
0 commit comments