1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| # coding: utf-8
'''
'''
import cx_Oracle
class Oracle(object):
def connect(self, username, password, hostname, port, servicename):
""" Connection à la database. """
try:
self.db = cx_Oracle.connect(username, password
, hostname + ':' + port + '/' + servicename)
except cx_Oracle.DatabaseError as e:
# Log error as appropriate
raise
# If the database connection succeeded create the cursor
# we-re going to use.
self.cursor = self.db.cursor()
def disconnect(self):
"""
Déconnectez-vous de la base de données. Si cela échoue, par exemple
si l'instance de connexion n'existe pas, ignorez l'exception.
"""
try:
self.cursor.close()
self.db.close()
except cx_Oracle.DatabaseError:
pass
def execute(self, sql, bindvars=None, commit=False):
"""
Exécutez toutes les instructions SQL transmises à la méthode;
valider si spécifié. Ne spécifiez pas fetchall () ici comme
l'instruction SQL n'est peut-être pas une sélection.
bindvars est un dictionnaire de variables que vous transmettez pour exécuter.
"""
try:
self.cursor.execute(sql, bindvars)
except cx_Oracle.DatabaseError as e:
# Log error as appropriate
raise
# Only commit if it-s necessary.
if commit:
self.db.commit()
if __name__ == "__main__":
oracle = Oracle.connect( 'username', 'password', 'hostname', 'port', 'servicename')
try:
# Pas de validation car vous n'avez pas besoin de valider DDL.
oracle.execute('ddl_statements')
# Assurez-vous que nous nous d�connectons toujours de la base de donn�es pour �viter
# ORA-00018: nombre maximal de sessions d�pass�.
finally:
oracle.disconnect() |
Partager