Lav den indre forespørgsel:
select a_id, dbms_random.value() rnd from tableA order by rnd
og vælg derefter i den ydre forespørgsel 100 rækker i ét skud med rownum <= 100
.
Sådan:
insert into tableX
select
rownum,
round(dbms_random.value(100,999), 0),
a_id
from
(
SELECT a_id, dbms_random.value() rnd
FROM tableA
ORDER BY rnd
)
where rownum <= 100;