Encontrar un conector para Oracle desde Python no es muy sencillo, en algunas ocasiones se exige que se tenga instalado el suite gratuito de Oracle, una centena de megas desperdiciado, si lo único que se desea es conectarse a una base de datos de oracle que está en otra máquina. Por lo tanto se presenta una aproximación en la cual se puede usar un driver jdbc para java con jython y se puede disfrutar programando python, en lugar de hacerlo en Java.
Requerimientos
- Driver jdbc para Oracle
- Máquina virtual de java
jython (Paquete de Debian jython_2.1.0-23_all.deb como mínimo)
Primero se asegura que en el CLASSPATH esté el conector Jdbc y se carga jython
- export CLASSPATH=/usr/local/java/drivers/ojdbc14.jar ;jython
A continuación un código que puede servir como base para hacer conexiones a una base de datos en jython
1 from com.ziclix.python.sql import zxJDBC
2 IP="192.20.100.63"
3 PORT="1521"
4 SID="LABASE"
5 USER="usuario"
6 PA="clave"
7
8 def connect(un, pw, sid, host, port):
9 connection = "jdbc:oracle:thin:@//%s:%s/%s" % (host, port, sid)
10 db=zxJDBC.connect(connection,un,pw,"oracle.jdbc.driver.OracleDriver")
11 return db
12
13 c=connect(USER,PA,SID,IP,PORT)
14 cur=c.cursor()
15 cur.execute("SELECT count(*) from estacion")
16 print cur.description
17 for a in cur.fetchall():
18 print a
19 cur.close()
20 c.close()
Si este script tuviera por nombre conecta.jy se podría ejecutar con export CLASSPATH=/usr/local/java/drivers/ojdbc14.jar ;jython conecta.jy, es fundamental el haber incluido el jdbc para la base de datos antes de invocar a jython
La idea es usar java con la sintaxis de Python.

