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")

0 comentarios:

Publicar un comentario

Con la tecnología de Blogger.

Lema

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

Buscar

BTemplates.com

BTemplates.com

Blogroll

Datos personales

Blogroll

About