Мы пытаемся получить количество таблиц из dba_tables в процедуре pl/sql, и количество возвращается как ноль. Мы можем видеть количество просмотров записей dba_tables через разработчика sql. Однако через код pl/sql это возвращается как ноль.
Пожалуйста, найдите пример кода ниже. В настоящее время у нас есть 2 схемы, работающие в одной базе данных. Мы предоставили права выбора на dba_tables для обоих пользователей схемы.
declare
l_count number :=0;
begin
select count(1) into l_count from dba_tables where owner ='USER1';
dbms_output.put_line('count for user 1 is ' || l_count);
l_count := 0;
select count(1) into l_count from dba_tables where owner ='USER2';
dbms_output.put_line('count for user 2 is ' || l_count);
end;
вывод, который мы получаем: счетчик для пользователя 1 равен 0 счетчик для пользователя 2 равен 0
Вывод, который мы получаем для тех же запросов от разработчика sql:
select count(1) from dba_tables where owner ='USER1'; --result is 5892
select count(1) from dba_tables where owner ='USER2'; --result is 6124
Заранее спасибо, было бы очень здорово, если бы кто-нибудь помог мне с этим.
count(*)
. - person William Robertson   schedule 06.08.2020