Differences between revisions 22 and 44 (spanning 22 versions)
Revision 22 as of 2007-01-12 10:49:27
Size: 3000
Editor: sa216-05
Comment: Removing a no longer valid link
Revision 44 as of 2017-08-07 18:24:13
Size: 5180
Comment: changed pyodbc link from http://code.google.com/p/pyodbc to https://github.com/mkleehammer/pyodbc
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
[[TableOfContents]]
Line 4: Line 3:
== Masthead == = Oracle =
Line 6: Line 5:
  URL:: http://www.oracle.com/index.html
  FAQ:: http://www.orafaq.com/
  Wiki:: http://www.orawiki.com/
  URL::  http://www.oracle.com/index.html
  FAQ::  http://www.orafaq.com/
  Wiki::  http://www.orawiki.com/
Line 10: Line 9:
  license:: commercial; free for development from [http://www.oracle.com/technology//index.html Oracle Technology Network]; [http://www.oracle.com/technology/software/products/database/xe/index.html Oracle XE] is free for production and development(and an excellent option all-around)   license:: commercial/proprietary; free for development from [[http://www.oracle.com/technology//index.html|Oracle Technology Network]]; [[http://www.oracle.com/technology/software/products/database/xe/index.html|Oracle XE]] is free for production and development (and an excellent option all-around)
Line 13: Line 12:
== Pros ==

 * Reputation for being capable of handling large scale databases
 * Typically the database system others compare themselves to

== Cons ==

 * Usually requires bloated Oracle client installation on any machine that the app will run on
 * Frequently the subject of migration discussions (to alternatives), usually for reasons of cost

----
Line 14: Line 25:

=== cx_Oracle ===

  URL:: http://cx-oracle.sourceforge.net/
  licence:: [[http://cx-oracle.sourceforge.net/LICENSE.txt|BSD like]]
  platforms:: Unix, win32
  Python versions:: 2.5 - 3.2
  Oracle versions:: 10i - 11g
  Last release:: 5.1 (March 19, 2011)
Line 21: Line 41:
  Last release:: 1.3beta (Feb 10, 2003)
Line 22: Line 43:
==== Extensions to DB API ==== DCOracle2 targets Oracle 8i and up.
Line 24: Line 45:
==== Comments ====

=== cx_Oracle ===

  URL:: http://www.computronix.com/utilities.shtml
  licence:: [http://www.computronix.com/download/License(cxOracle).txt BSD like]
  platforms:: Unix, win32
  Python versions:: 2.2 - 2.4
  Oracle versions:: 8i - 10g

==== Extensions to DB API ====

==== Comments ====

While trying to install the cx_Oracle Python utility, I encounter the following error:

 

sh-2.05b# python setup.py build

running build

running build_ext

building 'cx_Oracle' extension

gcc -pthread -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -I/devtools/oracle/product/8.1.5/rdbms/demo -I/devtools/oracle/product/8.1.5/rdbms/public -I/devtools/oracle/product/8.1.5/network/public -I/usr/local/python2.4/include/python2.4 -c cx_Oracle.c -o build/temp.linux-i686-2.4/cx_Oracle.o -DBUILD_TIME="January 21, 2005 11:19:47"

cx_Oracle.c:10: xa.h: No such file or directory

error: command 'gcc' failed with exit status 1

 

Where can I find the xa.h file? The only package I could find online that provides any such file is a cd i/o library, and that doesn’t seem right.

I am running a 2.4 linux kernel, trying to install cx_Oracle-4.0.1 on top of Python 2.4.

I have tried the beta package which should be more 2.4 compatible, but still no luck. Any help is appreciated. Thanks!

'''Answer''':
There also is DCOracle (http://www.zope.org/Products/DCOracle/) for the older Oracle 7 and 8 versions, but this is unmaintained.
Line 67: Line 48:
I got the same problem. Installing package "python2.4-dev" worked for me. === mxODBC ===

  URL:: http://www.egenix.com/products/python/mxODBC/
  Licence:: eGenix Commercial License
  Platforms:: Windows, Linux, MacOS X, FreeBSD, Solaris, AIX
  Python versions:: 2.4 - 2.7

mxODBC is compatible with the Oracle ODBC drivers on Windows and Unix, such as the ones included in the [[http://www.oracle.com/technology/tech/oci/instantclient/index.html|Oracle Instant Client]].

=== pyodbc ===

  URL:: https://github.com/mkleehammer/pyodbc
  License:: MIT
  Platforms:: Windows, Linux, MacOS X, FreeBSD, Solaris, Any (source provided)
  Python versions:: 2.4 - 2.6

Actively maintained Open Source project.

Precompiled binaries are available for Windows. Red``Hat Enterprise Linux, Centos, and Fedora have precompiled RPMs available in their Extras repositories.

=== OJDBC and JayDeBeApi ===

  URL:: http://pypi.python.org/pypi/JayDeBeApi
  licence:: LGPL
  platforms:: Any (requires Java)
  Python versions:: Tested on CPython 2.6.6 and Jython 2.5.2
  Oracle versions:: Any supported by Oracle's JDBC drivers (currently 8.1.7 to 11.2.0.2.0)
  Last release:: 0.1 (2010-08-16)

No InstantClient required. Download an Oracle JDBC driver (the filename will be something like ojdbc6.jar) from the [[http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html|Oracle website]], and set the classpath to include the driver. Note that if not running under Jython, JPype is required. Use code like the following:

{{{#!python
environ['JAVA_HOME'] = '/usr/lib/jvm/java-6-openjdk/jre'
jpype.startJVM(jpype.getDefaultJVMPath(), '-Djava.class.path=ojdbc6.jar')
conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:user/pass@server:1521:dbname')
}}}
Line 70: Line 86:
''apt-get install python2.4-dev'' === mxODBC Connect ===
Line 72: Line 88:
 URL:: http://www.egenix.com/products/python/mxODBCConnect/
 License:: eGenix Commercial License 1.3.0
 Platforms:: Client: all Python platforms; Server: Windows, Linux
 Python versions:: 2.5 - 2.7
Line 73: Line 93:
== Other Drivers == mxODBC Connect is a commercial client-server product that allows connecting Python to ODBC compatible databases running on remote servers without requiring an ODBC driver on the client side. The product uses mxODBC on the server side and provides a highly portable Python library for the client side. As such it supports all database backend that mxODBC supports, but allows connecting to these from many different Python-supported platforms.
Line 75: Line 95:
=== driver name === mxODBC Connect supports asynchronous query execution via the popular [[http://www.gevent.org/|gevent package]], provides secure certificate based authentication, SSL encrypted database connections, comes with full support for stored procedures, multiple result sets, Unicode, a common interface on all platforms and implements [[http://www.egenix.com/products/python/mxODBCConnect/#Features|many other useful features]].
Line 77: Line 97:
  URL::
  licence::
  platforms::
  Python versions::
mxODBC Connect Server is compatible with the [[http://www.oracle.com/technology/tech/oci/instantclient/index.html|Oracle Instant Client]] ODBC drivers.
Line 82: Line 99:
==== Programming Model ====

==== Comments ====
----
Line 88: Line 103:
 * ["Zope"]
 * an Oracle (DCOracle and DCOracle2) driver exists for ["PyDO"] (Python Data Objects)
 * [[Zope]]
 * an Oracle (DCOracle and DCOracle2) driver exists for [[PyDO]] (Python Data Objects)
Line 91: Line 106:
== Pros == == Web Links ==
Line 93: Line 108:
== Cons ==
 * Requires bloated Oracle client installation on any machine that the app will run on
[[http://www.orafaq.com/forum|Oracle Forum]]
Line 96: Line 110:
Oracle Wiki's: [[http://www.orafaq.com/wiki|English]] [[http://www.oracle-10g.de/oracle-wiki|German]]
Line 97: Line 112:
== Weblinks ==
http://www.orafaq.com/forum

http://www.oracle-
10g.de/oracle-wiki

http://www.oracle-doku.de/oracle_
10g_documentation/index.htm

http://www.oracle-doku.de/oracle_9i_documentation/index.htm   http://www.oracle-doku.de/oracle_8i_documentation/index.htm

http://www.oracle-doku.de/oracle_7_documentation/index.htm
Oracle Documentation: [[http://www.oracle-doku.de/oracle_10g_documentation/index.htm|10g]] [[http://www.oracle-doku.de/oracle_9i_documentation/index.htm|9i]] [[http://www.oracle-doku.de/oracle_8i_documentation/index.htm|8i]] [[http://www.oracle-doku.de/oracle_7_documentation/index.htm|7]]

Oracle

URL

http://www.oracle.com/index.html

FAQ

http://www.orafaq.com/

Wiki

http://www.orawiki.com/

Wikipedia

http://en.wikipedia.org/wiki/Oracle_database

license

commercial/proprietary; free for development from Oracle Technology Network; Oracle XE is free for production and development (and an excellent option all-around)

platforms
Unix, Linux, win32, win64

Pros

  • Reputation for being capable of handling large scale databases
  • Typically the database system others compare themselves to

Cons

  • Usually requires bloated Oracle client installation on any machine that the app will run on
  • Frequently the subject of migration discussions (to alternatives), usually for reasons of cost


DB API 2.0 Drivers

cx_Oracle

URL

http://cx-oracle.sourceforge.net/

licence

BSD like

platforms
Unix, win32
Python versions
2.5 - 3.2
Oracle versions
10i - 11g
Last release
5.1 (March 19, 2011)

DCOracle2

URL

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

licence
ZPL
platforms
Unix, win32
Python versions
Last release
1.3beta (Feb 10, 2003)

DCOracle2 targets Oracle 8i and up.

There also is DCOracle (http://www.zope.org/Products/DCOracle/) for the older Oracle 7 and 8 versions, but this is unmaintained.

mxODBC

URL

http://www.egenix.com/products/python/mxODBC/

Licence
eGenix Commercial License
Platforms
Windows, Linux, MacOS X, FreeBSD, Solaris, AIX
Python versions
2.4 - 2.7

mxODBC is compatible with the Oracle ODBC drivers on Windows and Unix, such as the ones included in the Oracle Instant Client.

pyodbc

URL

https://github.com/mkleehammer/pyodbc

License
MIT
Platforms
Windows, Linux, MacOS X, FreeBSD, Solaris, Any (source provided)
Python versions
2.4 - 2.6

Actively maintained Open Source project.

Precompiled binaries are available for Windows. RedHat Enterprise Linux, Centos, and Fedora have precompiled RPMs available in their Extras repositories.

OJDBC and JayDeBeApi

URL

http://pypi.python.org/pypi/JayDeBeApi

licence
LGPL
platforms
Any (requires Java)
Python versions
Tested on CPython 2.6.6 and Jython 2.5.2
Oracle versions
Any supported by Oracle's JDBC drivers (currently 8.1.7 to 11.2.0.2.0)
Last release
0.1 (2010-08-16)

No InstantClient required. Download an Oracle JDBC driver (the filename will be something like ojdbc6.jar) from the Oracle website, and set the classpath to include the driver. Note that if not running under Jython, JPype is required. Use code like the following:

   1 environ['JAVA_HOME'] = '/usr/lib/jvm/java-6-openjdk/jre'
   2 jpype.startJVM(jpype.getDefaultJVMPath(), '-Djava.class.path=ojdbc6.jar')
   3 conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:user/pass@server:1521:dbname')

mxODBC Connect

URL

http://www.egenix.com/products/python/mxODBCConnect/

License
eGenix Commercial License 1.3.0
Platforms
Client: all Python platforms; Server: Windows, Linux
Python versions
2.5 - 2.7

mxODBC Connect is a commercial client-server product that allows connecting Python to ODBC compatible databases running on remote servers without requiring an ODBC driver on the client side. The product uses mxODBC on the server side and provides a highly portable Python library for the client side. As such it supports all database backend that mxODBC supports, but allows connecting to these from many different Python-supported platforms.

mxODBC Connect supports asynchronous query execution via the popular gevent package, provides secure certificate based authentication, SSL encrypted database connections, comes with full support for stored procedures, multiple result sets, Unicode, a common interface on all platforms and implements many other useful features.

mxODBC Connect Server is compatible with the Oracle Instant Client ODBC drivers.


Supported Python Applications

  • Zope

  • an Oracle (DCOracle and DCOracle2) driver exists for PyDO (Python Data Objects)

Oracle Forum

Oracle Wiki's: English German

Oracle Documentation: 10g 9i 8i 7

Oracle (last edited 2017-08-07 18:24:13 by MaximilianFuxjaeger)

Unable to edit the page? See the FrontPage for instructions.