I need to load data from different remote database into our own database. I write a single "complex" query using WITH statement. It is around 18 Million rows of data. 

What is most efficient way to do the insert? 

1. using cursor insert one by one
2. using INSERT INTO

or is there any other way?