рекурсивный оракул с формулой количества расчетного значения

Мне нужна помощь, чтобы сделать рекурсивный запрос.

    --select * from tmpProduto;
    create table tmpProduto(
      idpro    number,
      descpro  varchar2(100),
      unimetr  varchar2(3),
      qtty     number(10,4))

    alter table tmpProduto add constraint pk_TmpProduct primary key (idpro);

    --select * from tmpComposition;
    create table tmpComposition(
      idmodel  number,
      idcomp   number,
      qtty     number(10,4));

    alter table tmpComposition add constraint pk_TmpCompositon primary key (idmodel, idcomp);

У меня есть две таблицы и я делаю рекурсивный запрос

    SELECT p.idpro, c.idmodel, c.idcomp, c.qtty, LEVEL lnum                                      
      FROM tmpComposition c 
      INNER JOIN tmpProduto p 
      ON (p.idpro = c.idmodel)
      CONNECT BY PRIOR c.idcomp = c.idmodel
      START WITH M.CODMOD = :vcdProduto;

Я хочу сделать это, вычислить поле qtty с помощью
product.qtty * component.qtty -- здесь мне нужно применить рекурсию, где уровень равен 1
component.qtty * component. qtty -- здесь уровень больше 1

образец:
продукт

idprod | descprod     | qtty  
0001   | 'Test Prod1' | 1  
0002   | 'Test Prod2' | 1  

компонент

idmodel | idcomp |  qtty    
0001    |  0002  |  0,5  
0001    |  0003  |  0,43  
0001    |  0075  |  1,15  
0002    |  0005  |  0,24  
0005    |  0006  |  0,25  
0005    |  0007  |  0,78  

результат, который мне нужен

idmodel |  idcomp  |  p.qtty  | c.qtty  | value_I_want
0001    |  0002    |    1     | 0,5     | 0,5  
0002    |  0005    |          | 0,24    | 0,12  
0005    |  0006    |          | 0,25    | 0,03  
0005    |  0007    |          | 0,78    | 0,0936  
0001    |  0003    |    1     | 0,43    | 0,43  
0001    |  0075    |    1     | 1,15    | 1,15  

person Joao Marcos Rueda    schedule 04.07.2018    source источник