Salut tout le monde, j'utilise Sql Server 2008 qui et lié à une base de données Oracle 9i, je fais cette connexion pour des raisons particulière, aussi parceque mes droits sur Oracle sont en mode lecture seulement, pour que Django puise créer ces tables spécifiques j'utilise Sql Server dument c'est la seule solution que j'ai pu trouver, maintenant avec python je me connecte à la base, j'interroge oracle depuis Sql Server avec des requête SQL par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
import pyodbc
 
con = pyodbc.connect("DRIVER={SQL SERVER};server=DJANGO-PC\SQLEXPRESS;database=MaBase;uid=Oracle;pwd=MonPasse")
cur = con.cursor()
cur.execute("Select Champ1, Champ2, Champ3, Champ4 From OpenQuery(Oracle,'Select * From Table1 Where Champ1=''%s'' \
             Order By Champ1, Champ2')" %'une Valeur aux choix')
for row in cur:
    print(row.Champ1+" "+ row.Champ2+" "+ row.Chmap3+" "+ row.Champ4+" "+ row.Champ5)
cur.close()
con.close()
Ce code marche très bien.

J'essaye de le faire avec Django, mais je n'arrive pas déclarer mes tables Oracle sur mon models.py, j'ai utilisé InspectDB mais ça ne marche pas. En cherchent sur le Net j'ai trouver un code à mettre dans une view.py, alors es une bonne pratique ou y'a t'il un autre moyen de le faire, voici le code trouver*:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
from django.shortcuts import render_to_response
import pyodbc
 
 
def adherentsList(request):
    db = pyodbc.connect('DRIVER={SQL SERVER};server=DJANGO-PC\SQLEXPRESS;database=MaBase;uid=Oracle;pwd=MonPasse')
    cursor = db.cursor()
    cursor.execute("Select Champ1, Champ2, Champ3, Champ4 From OpenQuery(Oracle,'Select * From Table1 Where Champ1=''%s'' \
             Order By Champ1, Champ2')" %'une Valeur aux choix ')")
    names = [row for row in cursor.fetchall()]
    db.close()
    return render_to_response('adherent.html', {'names': names})
Python version : 3.7
Django Version : 2.
IDE : PyCharm, Visual Code.
Merci pour votre aide et j'espère être claire dans ma demande d'aide.