martes, 10 de julio de 2012

ORACLE DESDE PYTHON

ORACLE DESDE PYTHON

A continuación se presenta un pequeño script, para el enlace hacia base de datos oracle desde python. Además hay métodos para poder hacer consultas e inserción de datos.

Nota: instalar la libreria cx_Oracle, apropiada para el sistema operativo y arquitectura.



import cx_Oracle

class BD_oracle():
   
    def conectar(self):
        """
            conectarme a la bd
        """
        db = None
        try:
        conn_str='HR/pass@localhost:1521/basededatos'
                    db = cx_Oracle.connect(conn_str)
        except Exception, e:
            print "error de coneccion", e
        return db
   
    def cerrar(self, db):
        """
            cerrar la base de datos
        """
        db.close()
   
    def guardar(self, db):
        """
            cerrar la base de datos
        """
        db.commit()

    def test_select(self, table):
        """
            conectarme a la bd, para sacar datos test
        """
        lista = []
        db = self.conectar()
        cursor=db.cursor()
        cursor.execute("SELECT * from %s"%table)
        datos = cursor.fetchall()
        for d in datos:
            lista.append(d)
        self.cerrar(db)
       
        return lista

    def insertar_datos(self, id, nombre):
        """
            Insertar en la base de datos
        """
        db = self.conectar()
        if db is not None:
            cursor=db.cursor()
        diccionario = {'REGION_ID':id,'REGION_NAME':nombre}
        cursor.execute("INSERT INTO REGIONS(REGION_ID, REGION_NAME) VALUES (:REGION_ID,:REGION_NAME)",diccionario)
   
            self.guardar(db)
            self.cerrar(db)
        else:
            print "error"

if __name__ == "__main__":

    print "#######################"
    d = BD_oracle()

    d.test_select("REGIONS")
    lista = [(2001,"uno"),(2002,"dos"),(2003,"tres"),(2004,"cuatro")]
    for id,nombre in lista:
        d.insertar_datos(id,nombre)
    d.test_select("REGIONS")

1 comentario:

  1. this is such a nice and useful information for us...i appreciate urs word Free Blogger premium Themes

    ResponderEliminar

Con la tecnología de Blogger.

Follow by Email

Lema

El mejor hábito.... la lectura..

Buscar

BTemplates.com

BTemplates.com

Blogroll

Blogroll

About