update new_hill
set owner_id = (select owner_id from new_owner sample(0.001) where rownum = 1)
where rownum <= 1;
У вас фулскан таблицы NEW_OWNER да и еще и вычисление dbms_random.value для каждой строки. Лучше использовать sample_clause: "The sample_clause lets you instruct the database to select from a random sample of data from the table, rather than from the entire table"
select distinct grantee
from (select p.grantee,
sum(decode(p.granted_role, 'PRESS', 1, 'CONNECT', 1, 0)) over (partition by p.grantee) cnt,
count(*) over (partition by p.grantee) cnt_all
from dba_role_privs p)
where cnt = 2
and cnt_all = 2
Неправильно понимаете. В рамках одной сессии вы видите все незакомиченные изменения сделанные в этой сессии. Если ваша хранимая процедура не автономная, то все она увидит. Да и проверить это легко. Что вам мешает создать таблицу, вставить туда строку, а потом вызвать хранимую процедуру, которая что-то попытается сделать с этой строкой.