I have big CSV files and placed it on Linux (Amazon AMI). I have installed instant client on Amazon Linux AMI and I can connect to my Oracle database using SQL Plus. How can I import all the CSVs to Oracle from Linux terminal?

My Oracle database is located on Amazon RDS.


3 Answers 3


Use sql*loader to load the data :


(or external tables).

1) setup a .ctl file with your file format

2) setup / point to a receiving table in your database.

3) invoke sql*loader (sqlld)

  • I do not have sqlldr on my linux. How can I install it?
    – dang
    Apr 15, 2015 at 7:20
  • 1
    @dang - I believe you'd need the full Oracle client to get SQL*Loader. I don't believe that's been built with the Instant Client. If you can place the file on the database server machine, then you could use an external table to load it (which is basically SQL*Loader syntax within a CREATE TABLE statement). Depending on how big the file is and whether this is a one-time process or an ongoing process, you might also be able to run SQL Developer on the client machine and use that GUI to load the data. Sep 1, 2015 at 20:08

You can use Python to do the load. I see it like this:

  1. Python reads all CSV file names from given directory.
  2. Creates SQL*Loader co-routines for each file.
  3. Waits for load to finish
  4. Validates results.

I took similar approach in CSV-Loader-For-Oracle


Oracle SQL*Loader have two different option: direct and conventional path (https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_modes.htm#SUTIL1284):

enter image description here

And loader concept / command line parameters are explained here:



But Oracle does provide another tool: Oracle export/import tool.

More information:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.