Suppose you do not create more than 1000 lines per line:
with num as (select level as rnk from dual connect by level<=1000) select Job, Quantity, Status, Repeat, rnk from t join num on ( num.rnk <= repeat ) order by job, rnk;
Here is the test: http://sqlfiddle.com/#!4/4519f/12
UPDATE: As Jeffrey Kemp said, you can βdetectβ the maximum using a subquery:
with num as (select level as rnk from dual connect by level<=(select max(repeat) from t) ) select job, quantity, status, repeat, rnk from t join num on ( num.rnk <= repeat ) order by job, rnk;
source share