sql >> Database >  >> RDS >> Oracle

Cx_Oracle implementeren op verschillende versies van Oracle Client

Als u meerdere cx_Oracle-versies wilt bouwen (bijvoorbeeld:cx_Oracle10g, cx_Oracle11g, enz.), moet u het cx_Oracle setup.py-script wijzigen. De laatste stap in het script is een aanroep naar setup(); de eerste parameter is de naam van de te bouwen module. Het enige wat u hoeft te doen is "cx_Oracle" . te wijzigen naar "cx_Oracle" + ver , waarbij ver 10g is , 11g , enz. Maak meerdere scripts en codeer deze hard, of voeg een andere parameter toe aan setup.py om het dynamisch te selecteren.

Als je dat eenmaal hebt, heb je natuurlijk een mechanisme nodig om de juiste module tijdens runtime te laden. Om dat te doen, moet je je eigen cx_Oracle . maken module met een __init__.py bestand dat er ongeveer zo uitziet:

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

Het enige dat u hoeft te doen, is uw aangepaste cx_Oracle . te verzenden module plus de juiste cx_OracleXg module bij uw aanvraag.

Als alternatief kunt u uw aangepaste cx_Oracle module dynamisch controleren op elke beschikbare Oracle-clientbibliotheek (9g, 10g, 11g, enz.) en vervolgens alleen de juiste overeenkomende cx_OracleXg importeren module. In dit geval hoeft u slechts één binair bestand te verzenden met uw aangepaste cx_Oracle module plus alle cx_OracleXg modules.




  1. Hoe de bestandsnaam in de database op te slaan, met andere info tijdens het uploaden van de afbeelding naar de server met behulp van PHP?

  2. Afbeeldingen opslaan in PostgreSQL

  3. Postgresql full-text zoekgedeelte van woorden

  4. Waarom kan Java geen verbinding maken met MySQL 5.7 na de laatste JDK-update en hoe moet dit worden opgelost? (ssl.SSLHandshakeException:geen geschikt protocol)