sql >> Base de Datos >  >> RDS >> Oracle

Implementación de cx_Oracle en varias versiones de Oracle Client

Si desea crear varias versiones de cx_Oracle (p. ej., cx_Oracle10g, cx_Oracle11g, etc.), deberá modificar el script cx_Oracle setup.py. El último paso en el script es una llamada a setup(); el primer parámetro es el nombre del módulo a construir. Todo lo que necesita hacer es cambiar "cx_Oracle" a "cx_Oracle" + ver , donde ver es 10g , 11g , etc. Cree varios scripts y codifíquelos, o agregue otro parámetro a setup.py para seleccionarlo dinámicamente.

Por supuesto, una vez que tenga eso, necesita un mecanismo para cargar el módulo correcto en tiempo de ejecución. Para hacer eso, querrá crear su propio cx_Oracle módulo que tiene un __init__.py archivo que se parece a esto:

try:
  from cx_Oracle9g import *
except ImportError:
  try:
    from cx_Oracle10g import *
  except ImportError:
    try:
      from cx_Oracle11g import *

Todo lo que necesita hacer es enviar su cx_Oracle personalizado módulo más el cx_OracleXg correcto módulo con su aplicación.

Alternativamente, podría tener su cx_Oracle personalizado el módulo verifica dinámicamente cada biblioteca de cliente de Oracle disponible (9g, 10g, 11g, etc.) y luego solo importa el cx_OracleXg correspondiente correcto módulo. En este caso, solo tiene que enviar un único binario que contenga su cx_Oracle personalizado. módulo más todos los cx_OracleXg módulos.