Accessing Oracle from Python

D

Dan Ellis

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.
 
L

Larry Bates

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.
 
?

=?ISO-8859-1?Q?Walter_D=F6rwald?=

Dan said:
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
 
?

=?ISO-8859-1?Q?Walter_D=F6rwald?=

Dan said:
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
 
M

M.-A. Lemburg

Larry said:
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)________________________________________________________________________

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
 
M

M.-A. Lemburg

Dan said:
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)________________________________________________________________________

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
 
D

Dan Ellis

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top