Python 기반 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!
Reference
이 문제에 관하여(Python 기반 Oracle 데이터 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ruizleandro/conectate-a-una-base-de-datos-de-oracle-con-python-4o2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Python 기반 Oracle 데이터 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ruizleandro/conectate-a-una-base-de-datos-de-oracle-con-python-4o2d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)