Интересно, что получается, если выполнить, например, на десятке несколько раз:
select * from (select trunc(dbms_random.value*10) as r from dual)
where r not in (1,2,3,4,5,6,7,8,9,0);
Источник В одиннадцатом по умолчанию убита эта прелестная возможность, функция вызывается один раз на строку.