By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,304 Members | 3,174 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,304 IT Pros & Developers. It's quick & easy.

Accessing Oracle from Python

P: n/a
Hi,

I've been down so many dead ends trying to get something working, so
I'm really hoping someone can help out.

I need to access an Oracle database running on a Windows server from
Python running on Linux. I've tried building DCOracle2, but it seems
that the 'oracle-installclient-basic' thing I downloaded from the
Oracle site doesn't contain enough. I've tried various other
approaches, such as mxODBC/iODBC, but without much luck. I'm hoping to
not have to resort to a Windows solution.

Can someone help me figure out what combination of Python module,
Oracle download and/or ODBC driver will work?

Thanks,
Dan.

--
Dan Ellis, Computer Officer
North Lindsey College
Jul 18 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
You don't want to use ODBC as that is a Windows interface
that doesn't natively exist on Linux. You can purchase
Linux ODBC interfaces from companies like EasySoft, but
if your program is running on Linux you will be much better
off with a native interface. ODBC overhead is quite large
and should be avoided whenever possible. You didn't say
which version of Oracle, but for 7 and 8 you can use

http://www.zope.org/Products/DCOracle/

8i and above can be accessed using

http://www.zope.org/Members/matt/dco2/

Access to remote Oracle databases is just done via TCP
connections.

Note: Our experience is that Oracle runs MUCH better
on Linux than Windows (as much as 5 times faster on
equivalent hardware). Are you sure you want the database
on Windows?

HTH,
Larry Bates
Syscon, Inc.

"Dan Ellis" <us****@electricwords.org> wrote in message
news:bf**************************@posting.google.c om...
Hi,

I've been down so many dead ends trying to get something working, so
I'm really hoping someone can help out.

I need to access an Oracle database running on a Windows server from
Python running on Linux. I've tried building DCOracle2, but it seems
that the 'oracle-installclient-basic' thing I downloaded from the
Oracle site doesn't contain enough. I've tried various other
approaches, such as mxODBC/iODBC, but without much luck. I'm hoping to
not have to resort to a Windows solution.

Can someone help me figure out what combination of Python module,
Oracle download and/or ODBC driver will work?

Thanks,
Dan.

--
Dan Ellis, Computer Officer
North Lindsey College

Jul 18 '05 #2

P: n/a
Dan Ellis wrote:
Hi,

[...]

I need to access an Oracle database running on a Windows server from
Python running on Linux. I've tried building DCOracle2, but it seems
that the 'oracle-installclient-basic' thing I downloaded from the
Oracle site doesn't contain enough. I've tried various other
approaches, such as mxODBC/iODBC, but without much luck. I'm hoping to
not have to resort to a Windows solution.

Can someone help me figure out what combination of Python module,
Oracle download and/or ODBC driver will work?


Try cx_Oracle:
http://www.computronix.com/utilities.shtml#Oracle
(and of course you need an Oracle client installation on your Linux
machine)

HTH,
Walter Dörwald

Jul 18 '05 #3

P: n/a
Dan Ellis wrote:
Hi,

[...]

I need to access an Oracle database running on a Windows server from
Python running on Linux. I've tried building DCOracle2, but it seems
that the 'oracle-installclient-basic' thing I downloaded from the
Oracle site doesn't contain enough. I've tried various other
approaches, such as mxODBC/iODBC, but without much luck. I'm hoping to
not have to resort to a Windows solution.

Can someone help me figure out what combination of Python module,
Oracle download and/or ODBC driver will work?


Try cx_Oracle:
http://www.computronix.com/utilities.shtml#Oracle
(and of course you need an Oracle client installation on your Linux
machine)

HTH,
Walter Dörwald
Jul 18 '05 #4

P: n/a
Larry Bates wrote:
You don't want to use ODBC as that is a Windows interface
that doesn't natively exist on Linux. You can purchase
Linux ODBC interfaces from companies like EasySoft, but
if your program is running on Linux you will be much better
off with a native interface. ODBC overhead is quite large
and should be avoided whenever possible.


I don't quite agree with this statement: it's an old myth
that was based on poor ODBC drivers. If you connect to a
database over a network, the network latency is what matters,
not the additional layering you do on the client or server.

ODBC gives you much more flexibility in terms of setting up
your database client - server and backend structure.

Tools like mxODBC let you tap into this flexibility from
Windows, Linux, Solaris, AIX, etc. with the additional
benefit of having to only write against one API for all
databases and on all platforms.

--
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source (#1, Jul 16 2004)
Python/Zope Consulting and Support ... http://www.egenix.com/
mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/

__________________________________________________ ______________________

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
Jul 18 '05 #5

P: n/a
Dan Ellis wrote:
Hi,

I've been down so many dead ends trying to get something working, so
I'm really hoping someone can help out.

I need to access an Oracle database running on a Windows server from
Python running on Linux. I've tried building DCOracle2, but it seems
that the 'oracle-installclient-basic' thing I downloaded from the
Oracle site doesn't contain enough. I've tried various other
approaches, such as mxODBC/iODBC, but without much luck. I'm hoping to
not have to resort to a Windows solution.

Can someone help me figure out what combination of Python module,
Oracle download and/or ODBC driver will work?


The EasySoft Oracle drivers works nicely with mxODBC/unixODBC.
Other vendors of ODBC drivers for Oracle are: DataDirect,
OpenLink and a few others:

http://www.sqlsummit.com/ODBCVend.htm

There's also an open-soruce Oracle ODBC driver:

http://fndapl.fnal.gov/~dbox/oracle/odbc/

Naturally, the EasySoft driver works best with unixODBC and
the OpenLink one with iODBC (simply because those two companies
took over development of these ODBC managers).

--
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source (#1, Jul 16 2004)
Python/Zope Consulting and Support ... http://www.egenix.com/
mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/

__________________________________________________ ______________________

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
Jul 18 '05 #6

P: n/a
Thanks to everyone who replied. I finally managed to get cx_Oracle
built against Oracle 9i, and it's now working sweeter than a sweet
thing with extra sugar on.
Jul 18 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.