Hola si usas un ID de tipo enter, podrias hacer uso de una Secuencia(SEQUENCE).
   
Código SQL:
Ver original/*Secuencia para la tabla principal*/
CREATE SEQUENCE orders_seq
INCREMENT BY 1                   --> Va incrementarse de 1 en 1.
START WITH 100                    --> El valor con el cual va empezar la secuencia, en tu caso seria el ultimo id de tu tabla.
maxvalue 25                      --> Valor maximo
nocache;                            -->No guarda dato en cache.
 
 
/*Secuencia para la tabla detalle.*/
CREATE SEQUENCE order_lines_seq START WITH 200; --> el valor que va empezar el detalle supongamos que es 200.
 
 
 
 
BEGIN
  -- Usar NEXTVAL para generar el siguiente id.
  --orders_seq.NEXTVAL=101
 
  INSERT INTO orders (id, description)
  VALUES (orders_seq.NEXTVAL, 'Dummy order description.');
  
  -- Usar CURRVAL para traer el valor actual de la secuencia de la tabla Principal y usarlo en el detalle.
  --orders_seq.CURRVAL=101
 
  --order_lines_seq.NEXTVAL=201
 
  INSERT INTO order_lines (id, order_id, description)
  VALUES (order_lines_seq.NEXTVAL, orders_seq.CURRVAL, 'Dummy order line description');
  
  COMMIT;
END;
/
 
SQL> SELECT * FROM orders ORDER BY id;
 
        ID DESCRIPTION
---------- --------------------------------------------------
         101 Dummy ORDER description.        
 
2 ROWS selected.
 
SQL> SELECT * FROM order_lines ORDER BY id;
 
        ID   ORDER_ID DESCRIPTION
---------- ---------- --------------------------------------------------
       201       101 Dummy ORDER line description
      
 
2 ROWS selected.
 
SQL>