sql >> Database teknologi >  >> RDS >> Oracle

Implementering af cx_Oracle på forskellige versioner af Oracle Client

Hvis du vil bygge flere cx_Oracle-versioner (f.eks.:cx_Oracle10g, cx_Oracle11g osv.), så skal du ændre cx_Oracle setup.py-scriptet. Det sidste trin i scriptet er et kald til setup(); den første parameter er navnet på det modul, der skal bygges. Alt du skal gøre er at ændre "cx_Oracle" til "cx_Oracle" + ver , hvor ver er 10g , 11g , osv. Opret enten flere scripts og hårdkod det, eller tilføj en anden parameter til setup.py for at vælge det dynamisk.

Selvfølgelig, når du har fået det, har du brug for en mekanisme til at indlæse det korrekte modul under kørsel. For at gøre det skal du oprette din egen cx_Oracle modul, der har en __init__.py fil, der ser sådan ud:

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

Alt du skal gøre er at sende din brugerdefinerede cx_Oracle modul plus den korrekte cx_OracleXg modul med din ansøgning.

Alternativt kunne du have din tilpassede cx_Oracle modul tjek dynamisk for hvert tilgængeligt Oracle-klientbibliotek (9g, 10g, 11g osv.) og importer derefter kun den korrekte matchende cx_OracleXg modul. I dette tilfælde skal du kun sende en enkelt binær, der indeholder din tilpassede cx_Oracle modul plus alle cx_OracleXg moduler.




  1. Hvorfor rapporterer MySQL en syntaksfejl på FULL OUTER JOIN?

  2. Får de sidste 5 tegn i streng med mysql-forespørgsel

  3. Hvordan man implementerer en mange-til-mange hierarkisk struktur i MySQL

  4. Kan Oracles standard objektlås timeout ændres?