@@ -335,7 +335,9 @@ create or replace package body ut_suite_manager is
335
335
l_objects_view varchar2(200) := ut_metadata.get_objects_view_name();
336
336
l_cursor_text varchar2(32767);
337
337
l_result ut_varchar2_rows;
338
+ l_object_owner varchar2(250);
338
339
begin
340
+ l_object_owner := sys.dbms_assert.qualified_sql_name(a_object_owner);
339
341
l_cursor_text :=
340
342
q'[select i.object_name
341
343
from ]'||l_ut_owner||q'[.ut_suite_cache_package i
@@ -345,9 +347,9 @@ create or replace package body ut_suite_manager is
345
347
where o.owner = i.object_owner
346
348
and o.object_name = i.object_name
347
349
and o.object_type = 'PACKAGE'
348
- and o.owner = ']'||a_object_owner ||q'['
350
+ and o.owner = ']'||l_object_owner ||q'['
349
351
)
350
- and i.object_owner = ']'||a_object_owner ||q'[']';
352
+ and i.object_owner = ']'||l_object_owner ||q'[']';
351
353
open l_rows for l_cursor_text;
352
354
fetch l_rows bulk collect into l_result limit 1000000;
353
355
close l_rows;
@@ -362,19 +364,33 @@ create or replace package body ut_suite_manager is
362
364
a_skip_all_objects boolean := false,
363
365
a_random_seed positive
364
366
) return t_cached_suites_cursor is
365
- l_path varchar2( 4000 );
366
- l_result sys_refcursor;
367
- l_ut_owner varchar2(250) := ut_utils.ut_owner;
367
+ l_path varchar2(4000);
368
+ l_result sys_refcursor;
369
+ l_ut_owner varchar2(250) := ut_utils.ut_owner;
370
+ l_object_owner varchar2(250);
371
+ l_object_name varchar2(250);
372
+ l_procedure_name varchar2(250);
368
373
begin
374
+ if a_object_owner is not null then
375
+ l_object_owner := sys.dbms_assert.qualified_sql_name(a_object_owner);
376
+ end if;
377
+ if a_object_name is not null then
378
+ l_object_name := sys.dbms_assert.qualified_sql_name(a_object_name);
379
+ end if;
380
+ if a_procedure_name is not null then
381
+ l_procedure_name := sys.dbms_assert.qualified_sql_name(a_procedure_name);
382
+ end if;
369
383
if a_path is null and a_object_name is not null then
370
384
execute immediate 'select min(path)
371
385
from '||l_ut_owner||q'[.ut_suite_cache
372
386
where object_owner = :a_object_owner
373
387
and object_name = :a_object_name
374
388
and name = nvl(:a_procedure_name, name)]'
375
- into l_path using upper(a_object_owner ), upper(a_object_name ), upper(a_procedure_name );
389
+ into l_path using upper(l_object_owner ), upper(l_object_name ), upper(l_procedure_name );
376
390
else
377
- l_path := lower( a_path );
391
+ if a_path is not null then
392
+ l_path := lower(sys.dbms_assert.qualified_sql_name(a_path));
393
+ end if;
378
394
end if;
379
395
380
396
open l_result for
@@ -717,29 +733,37 @@ create or replace package body ut_suite_manager is
717
733
a_owner_name varchar2,
718
734
a_package_name varchar2 := null
719
735
) return sys_refcursor is
720
- l_result sys_refcursor;
721
- l_ut_owner varchar2(250) := ut_utils.ut_owner;
736
+ l_result sys_refcursor;
737
+ l_ut_owner varchar2(250) := ut_utils.ut_owner;
738
+ l_owner_name varchar2(250);
739
+ l_package_name varchar2(250);
722
740
begin
741
+ if a_owner_name is not null then
742
+ l_owner_name := sys.dbms_assert.qualified_sql_name(a_owner_name);
743
+ end if;
744
+ if a_package_name is not null then
745
+ l_package_name := sys.dbms_assert.qualified_sql_name(a_package_name);
746
+ end if;
723
747
724
- refresh_cache(a_owner_name );
748
+ refresh_cache(l_owner_name );
725
749
726
750
open l_result for
727
751
q'[with
728
752
suite_items as (
729
753
select /*+ cardinality(c 100) */ c.*
730
754
from ]'||l_ut_owner||q'[.ut_suite_cache c
731
- where 1 = 1 ]'||case when can_skip_all_objects_scan(a_owner_name ) then q'[
755
+ where 1 = 1 ]'||case when can_skip_all_objects_scan(l_owner_name ) then q'[
732
756
and exists
733
757
( select 1
734
758
from all_objects a
735
759
where a.object_name = c.object_name
736
- and a.owner = ']'||upper(a_owner_name )||q'['
760
+ and a.owner = ']'||upper(l_owner_name )||q'['
737
761
and a.owner = c.object_owner
738
762
and a.object_type = 'PACKAGE'
739
763
)]' end ||q'[
740
- and c.object_owner = ']'||upper(a_owner_name) ||q'['
764
+ and c.object_owner = ']'||upper(l_owner_name) ||q'['
741
765
and ]'
742
- || case when a_package_name is not null
766
+ || case when l_package_name is not null
743
767
then 'c.object_name = :a_package_name'
744
768
else ':a_package_name is null' end
745
769
|| q'[
@@ -787,7 +811,7 @@ create or replace package body ut_suite_manager is
787
811
object_owner, object_name, item_name, item_description,
788
812
item_type, item_line_no, path, disabled_flag
789
813
)
790
- from items c]' using upper(a_package_name );
814
+ from items c]' using upper(l_package_name );
791
815
792
816
return l_result;
793
817
end;
@@ -798,17 +822,30 @@ create or replace package body ut_suite_manager is
798
822
a_procedure_name varchar2 := null,
799
823
a_item_type varchar2 := null
800
824
) return boolean is
801
- l_result integer;
802
- l_ut_owner varchar2(250) := ut_utils.ut_owner;
825
+ l_result integer;
826
+ l_ut_owner varchar2(250) := ut_utils.ut_owner;
827
+ l_owner_name varchar2(250);
828
+ l_package_name varchar2(250);
829
+ l_procedure_name varchar2(250);
803
830
begin
804
- refresh_cache(a_owner_name);
831
+ if a_owner_name is not null then
832
+ l_owner_name := sys.dbms_assert.qualified_sql_name(a_owner_name);
833
+ end if;
834
+ if a_package_name is not null then
835
+ l_package_name := sys.dbms_assert.qualified_sql_name(a_package_name);
836
+ end if;
837
+ if a_procedure_name is not null then
838
+ l_procedure_name := sys.dbms_assert.qualified_sql_name(a_procedure_name);
839
+ end if;
840
+
841
+ refresh_cache(l_owner_name);
805
842
806
843
execute immediate q'[
807
844
select count(1) from dual
808
845
where exists (
809
846
select 1
810
847
from ]'||l_ut_owner||q'[.ut_suite_cache c
811
- where 1 = 1 ]'||case when can_skip_all_objects_scan(a_owner_name ) then q'[
848
+ where 1 = 1 ]'||case when can_skip_all_objects_scan(l_owner_name ) then q'[
812
849
and exists
813
850
( select 1
814
851
from all_objects a
@@ -820,20 +857,20 @@ create or replace package body ut_suite_manager is
820
857
and :a_owner_name is not null ]' end ||q'[
821
858
and c.object_owner = :a_owner_name
822
859
and ]'
823
- || case when a_package_name is not null
860
+ || case when l_package_name is not null
824
861
then 'c.object_name = :a_package_name'
825
862
else ':a_package_name is null' end
826
863
|| q'[
827
864
and ]'
828
- || case when a_procedure_name is not null
865
+ || case when l_procedure_name is not null
829
866
then 'c.name = :a_procedure_name'
830
867
else ':a_procedure_name is null' end
831
868
|| q'[
832
869
)]'
833
870
into l_result
834
871
using
835
- upper(a_owner_name ), upper(a_owner_name ),
836
- upper(a_package_name ), upper(a_procedure_name );
872
+ upper(l_owner_name ), upper(l_owner_name ),
873
+ upper(l_package_name ), upper(l_procedure_name );
837
874
838
875
return l_result > 0;
839
876
end;
0 commit comments