How do I access an Oracle db without installing Oracle's client and cx_Oracle?

16,273

Solution 1

Usually, all you need are the libraries, which don't necessarily require sudo rights. Extract them to a place the software will be able to read from and set the following environment variables accordingly:

ORACLE_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora

I have had best luck skipping tnsnames, and just specifying the host, port, etc in the connection, but it's quite possible you'll need it for cx_oracle...I don't remember from when I used it ages ago.

Solution 2

An excerpt from https://forum.omz-software.com/topic/184/oracle-database:

There's no pure python client for Oracle and likely never will be. Even wonderful third-party toolsets like SQLalchemy still rely on cx_Oracle underneath to do the actual communication to the Oracle database servers.

—also, deciding by Google, the answer is no: there do not seem to be any pure Python Oracle clients in existence as of today.

Share:
16,273

Related videos on Youtube

Gary
Author by

Gary

Updated on September 15, 2022

Comments

  • Gary
    Gary over 1 year

    I have two RHEL servers running Python 2.4 and 2.6 separately. There is an Oracle database on the other server I need to access.

    I was trying to install cx_oracle on my RHEL server but found out that the Oracle client must be installed first.

    The problem is, I don’t have permission to install Oracle's client on both RHEL servers. On the same servers, a Perl program can connect to the Oracle db using:

    DBI->connect("dbi:Oracle:host=myhost.prod.com;sid=prddb",'username','password')
    

    Can Python do the same without installing cx_oracle and the Oracle client? Or are there any suggestions about how to write a module myself to do the same thing?

    Thanks in advance!

  • guettli
    guettli about 7 years
    This solves the problem of the user. But the question "How do I access an Oracle db without installing Oracle's client and cx_Oracle?" does not get answered.
  • guettli
    guettli about 7 years
    "... never will be" is there no coding hero out there to prove the opposite? It's possible - not easy but should doable.
  • user632657
    user632657 about 7 years
    If you are using Python's libraries, then you have no other choice. At least, not that I'm aware of. If you want to use Oracle DB, you play by their rules.
  • guettli
    guettli about 7 years
    if possible, I use PostgresSQL :-) in this case we found a work-around. We get a http API soon.
  • APC
    APC over 4 years
    Link to Pythonista forum was broken but Google saved the day!