Mis a jour le 2017-12-03, 22:17

Accès Oracle

Voir la documentation pour sqlite3, car l'accès est très similaire.
Pour importer le package : import cx_Oracle.
La connection à la base se fait par :
con = cx_Oracle.connect(myUser, myPassword, myDatabase)
cur = con.cursor()
...
con.close()
  
Avec Oracle, la formulation avec des ? ne semble pas marcher, il faut utiliser la formulation nommée (car cx_Oracle.paramstyle vaut 'named'):
cur = con.cursor()
cur.execute('select x, y from myTable where x = :a and y = :b', {'a': 1, 'b': 2})
for row in cur:
    print row
cur.close()
  
Pour catcher une erreur Oracle par exemple sur une foreign key :
try:
    ...
except BaseException as e:
    if type(e) == cx_Oracle.IntegrityError and re.search('MYTABLE_FK', e.message.message) is not None:
        ...
    else:
        raise e
  

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert