Con questa sintassi:

codice:
  1  declare  
  
  2    l_x sys_refcursor;  
  3    l_y sys_refcursor;  
  
  4    l_tmp number;  
  
  5  begin  
  6    open l_x for 'select x from tx order by x';  
  7    open l_y for 'select x from ty order by x';  
  
  8   loop  
  9    fetch l_x into l_tmp; 
  10    exit when l_x%notfound; 
  11    dbms_output.put_line (l_tmp); 
  12   fetch l_y into l_tmp; 
  13    exit when l_y%notfound; 
  14    dbms_output.put_line (l_tmp); 
  15  end loop; 
  
  16   close l_x; 
  17   close l_y; 
  18 end;
non ottengo il risultato che mi aspetto!!!
Nel senso che se il primo cursore estrae N righe e il secondo nessuna, mi trovo stampata solo la prima riga estratta dal primo cursore.
Ovviamente appena legge con il secondo e non trova nulla esce dal loop.
Chiaramente problema inverso nel caso in cui il primo non trovasse niente ed il secondo una o più righe, ci sarebbe il foglio bianco perchè uscirebbe subito!!!!

Questo non mi va bene, io devo potere stampare tutte le righe di tutti e due i cursori sempre e comunque.

Come cambio tale sintassi???

Grazie anticipatamente a chi mi saprà dare dritte in merito!