How do I access an Oracle db without installing Oracle's client and cx_Oracle?
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.
Related videos on Youtube
Gary
Updated on September 15, 2022Comments
-
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 about 7 yearsThis 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 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 about 7 yearsIf 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 about 7 yearsif possible, I use PostgresSQL :-) in this case we found a work-around. We get a http API soon.
-
APC over 4 yearsLink to Pythonista forum was broken but Google saved the day!