Oracle WITH 文で乱数発生

1~1000 の間の乱数を100個作る。
対象:Oracle

WITH  generate(id, rnum) AS (
   SELECT 1, TRUNC(dbms_random.value(1,1000 )) FROM dual
   UNION ALL
   SELECT id + 1, TRUNC(dbms_random.value(1,1000 ))
   FROM generate WHERE id + 1 <= 100
)
SELECT rnum FROM generate