@@ -24,7 +24,6 @@ create or replace package body ut_v2_migration is
24
24
l_setup_proc varchar2(128 char) := upper(a_package_prefix || 'setup');
25
25
l_teardown_proc varchar2(128 char) := upper(a_package_prefix || 'teardown');
26
26
l_replace_pattern varchar2(50);
27
- l_annotations ut_annotations.typ_annotated_package;
28
27
l_suite_desc varchar2(4000);
29
28
l_suite_package varchar2(4000);
30
29
begin
@@ -36,10 +35,31 @@ create or replace package body ut_v2_migration is
36
35
37
36
l_source := dbms_metadata.get_ddl('PACKAGE', l_resolved_object_name, l_resolved_owner);
38
37
39
- l_annotations := ut_annotations.parse_package_annotations(l_source);
40
-
41
- if l_annotations.package_annotations.exists('suite') then
42
- raise_application_error(-20400, 'Package '||a_packge_name||' is already version 3 compatible');
38
+ if ut.version like '%v3.0.0%' or ut.version like '%v3.0.1%' or ut.version like '%v3.0.2%' or ut.version like '%v3.0.3%' then
39
+ execute immediate q'[
40
+ declare
41
+ l_annotations ut_annotations.typ_annotated_package := ut_annotations.parse_package_annotations(:l_source);
42
+ begin
43
+ if l_annotations.package_annotations.exists('suite') then
44
+ raise_application_error(-20400, 'Package '||:a_packge_name||' is already version 3 compatible');
45
+ end if;
46
+ end;
47
+ ]' using l_source, a_packge_name;
48
+ else
49
+ execute immediate q'[
50
+ declare
51
+ l_exists integer;
52
+ begin
53
+ dbms_output.put_line('checking annotations');
54
+ select 1
55
+ into l_exists
56
+ from table( ut_annotation_parser.parse_object_annotations( :l_source ) )
57
+ where name = 'suite';
58
+ raise_application_error(-20400, 'Package '||:a_packge_name||' is already version 3 compatible');
59
+ exception
60
+ when no_data_found then
61
+ null;
62
+ end;]' using l_source, a_packge_name;
43
63
end if;
44
64
45
65
if trim(a_package_desc) is not null then
@@ -110,28 +130,29 @@ create or replace package body ut_v2_migration is
110
130
dbms_metadata.set_transform_param(dbms_metadata.session_transform,'BODY',false);
111
131
112
132
for rec in (select p.owner
113
- ,upper(case when p.samepackage='N' then p.prefix end || p.name) as name
133
+ ,p. name
114
134
,p.description as package_desc
115
135
,nvl(p.prefix, c.prefix) prefix
116
136
,s.name suite_name
117
137
,s.description as suite_desc
118
138
,o.status
119
- from utp .ut_package p
120
- ,utp .ut_suite s
121
- ,utp .ut_config c
139
+ from UTP .ut_package p
140
+ ,UTP .ut_suite s
141
+ ,UTP .ut_config c
122
142
,all_objects o
123
143
where p.id in (select max(p2.id) keep(dense_rank first order by p2.suite_id desc nulls last)
124
- from utp .ut_package p2
144
+ from UTP .ut_package p2
125
145
group by upper(p2.owner)
126
- ,upper(case when p2.samepackage='N' then p.prefix end || p2.name))
146
+ ,upper(p2.name))
127
147
and p.suite_id = s.id(+)
128
148
and p.owner = c.username(+)
129
149
and p.owner = o.owner
130
- and upper(case when p.samepackage='N' then p.prefix end || p. name) = o.object_name
150
+ and p. name = o.object_name
131
151
and o.object_type in ('PACKAGE')
132
152
and p.owner = nvl(a_owner_name, p.owner)
133
153
and p.name = nvl(a_package_name, p.name)
134
154
and (s.name = a_suite_name or a_suite_name is null)
155
+ and upper(p.name) like upper(nvl(p.prefix, c.prefix))||'%'
135
156
) loop
136
157
begin
137
158
l_items_processed := l_items_processed +1;
0 commit comments