-1

I'm looking for a solution to read the data from client machine and load into oracle database , by using sql loader/external table first we need to copy the file into oracle server directory to load but looking for any alternative by using any recent oracle functionality that allows to read from client machine into oracle DB

Thanks in Advance

expecting load data from client machine to oracle database

jarlh
  • 42,561
  • 8
  • 45
  • 63
kumar
  • 3
  • 2
  • There is no external table option that works specifically with client machines. External table files must be located on the database server, though they could possibly be visible from *shared* storage such as an NFS, mounted on the database server. – pmdba May 12 '23 at 14:32
  • 2
    Put another way, there is no means for the database to *pull* data from a client. Data on a client must be *pushed* to the server by the client and stored there (i.e. in a database table) before it will be visible to the database. – pmdba May 12 '23 at 14:34
  • 3
    SQLLoader is intended to be used as a client tool that connects to the database instance and **pushes** the data into the database. – astentx May 12 '23 at 14:46
  • kumar, you asked this question twice already. @pmdba, yes you can use external tables. The PREPROCESSOR option avail since 11g executes a shell script and takes its stdout as its data. That shell script could make a passwordless (via authorized_keys setup) ssh tunnel to the client machine, cat (or even cat + gzip) the file by script injection and let the data stream back stdout all the way back into oracle, without hitting disk. I've done it. It's just not a great solution because of how complicated it is, but it works. You can pull data from any host into Oracle this way. – Paul W May 12 '23 at 17:37
  • 1
    @kumar, I think you're confusing external tables with sql*loader. Sql*loader is intended to be used on client machines, not (usually) on database servers. There is no requirement for you to copy the file anywhere. All you need is the Oracle client installed on your client machine and you can use sqlldr to push the data into any Oracle database wherever it is. – Paul W May 12 '23 at 17:38

1 Answers1

1

Nope! SQLLDR does not require you to copy the file on the database server. It only requires that you have Oracle client installed on your client machine. So, install Oracle client, which includes SQLLDR and load the data using SQLLDR.