title: Data manipulation logic !! should be as a part of fetch via DB link or an independent routine
body: <p>The question may not be sufficient to give an insight.</p>
  
  <p>I have two DB instances : A and B on the same server.
  B reads data from several tables in A(A1,A2,A3...) via DB link and maintains  history of data in the replicated tables(A1_ext, A2_ext, A3_ext, as they have additional columns assume its status column) , i.e if its identified that a new row has been added in A1 ,a row is created in A1_ext with some status called as VALID , if a row is updated in A1, the existing data in A1_ext is updated to INVALID and a new row having latest data from A1 is created in A1_ext with status VALID.</p>
  
  <p>For now the implemenetd logic is : Read data from A1 via db link , check if its exists in A1_ext , if does, delimit the existing one and create a new one.</p>
  
  <p>Is it an efficient approach??</p>
  
  <p>Or should it be like read all updated data from A1 and pull them at one go(bulk collect say) on B instance in A1_stag table(new). Then run the logic of update/insert on A1_ext.</p>