Python 기반 Oracle 데이터 연결

Python에서 Oracle의 기본 설정과 Oracle의 기본 설정에 대한 자습서를 확인하십시오.

시작합니다.

Crea una conxión con Python



Te puedes conectar a una base de datos de Oracle usando cx_Oracle de dos diferentes maneras: de manera autonoma (dudosa traducción de standalone ) o con una conxión agrupada (pooled connection en ingles).

Las conexiones autonomas son útiles cuando la aplicación necesita que un solo usuario inicie sesión en la base de datos mientras que la conxión agrupada es criticala para el desempeño cuando la aplicación se conectato y des conecta y des conecta y

모듈로 구성할 수 있는 기본 설정config.py 기본 설정에 따라 기본 설정:

username = 'user'
password = '<password>'
dsn = 'localhost/pdborcl'
port = 1512
encoding = 'UTF-8'


En este modulo, dsn tiene dos partes: el servidor( localhost ) y la base de datos conectable ( pdborcl ).

Oracle está en example.com , tienes que usar el siguiente dsn:

dsn = 'example.com/pdborcl'


Crea conexiones autonomas



Para crear una conexion autonoma, usamos el metodo cx_Oracle.connect() o cx_Oracle.Connection() .

El siguiente script connect.py muestra como crear una conexion a una base de datos Oracle:

import cx_Oracle
import config

connection = None
try:
    connection = cx_Oracle.connect(
        config.username,
        config.password,
        config.dsn,
        encoding=config.encoding)

    # imprime la version de la base de datos
    print(connection.version)

except cx_Oracle.Error as error:
    print(error)

finally:
    # release the connection
    if connection:
    connection.close()


Crea conexiones agrupadas



Laconxión agrupada de cx_Oracle le permite a las alicaciones crear y mantener un grupo de conexiones a la base de datos.

Internamente, cx_Oracle Oracle에 대한 이해와 기술을 구현합니다. 일반적으로, cada conexión en un grupo de cx_Oracle 대응 a una sesión en la base de datos.

Para crear una conxión agrupada, se usa el método cx_Oracle.SessionPool() . El siguiente script connect_pool.py ilustra como crear este tipo de conxión:

import cx_Oracle
import config

# crea la sesion en grupo
pool = cx_Oracle.SessionPool(
    config.username,
    config.password,
    config.database,
    min=100,
    max=100,
    increment=0,
    encoding=config.encoding)

# consigue una conexion del grupo
connection = pool.acquire()

# usa la conexion
print('Using the connection')

# libera la conexion del grupo
pool.release(connection)

# cierra el grupo
pool.close()


En caso de que se supere el número máximo de sesiones en el grupo, cuando se llame al metodo acquire() este producirá un error "ORA-24459: OCISessionGet() 풀이 새 연결을 생성할 때까지 기다리는 동안 시간이 초과되었습니다."

Una solución podría ser llamar al siguiente argumento:

getmode = cx_Oracle.SPOOL_ATTRVAL_WAIT to the cx_Oracle.SessionPool()


로그라라 프리베니르 라 excepción, pero causará que la sesión espere a que haya una conxión disponible.

Por esta razón es una practica recomendada crear un grupo con un numero fijo de conexiones (es decir, que min y max tengan el mismo valor y que increment sea igual a cero

결론



Quizás en otra ocasión repasemos como realizar querys en una base de datos Oracle, pero por el momento creo que este artículo es un buen comienzo.

Espero que mi aporte te haya sido de utilidad, y ¡hasta la proxima!

좋은 웹페이지 즐겨찾기