J'ai téléchargé cx_oracle il y a quelques temps et j'ai écrit un script pour convertir des données en XML. J'ai dû reisntall mon OS et ai attrapé la dernière version de cx_Oracle (5.0.3) et tout à coup mon code est cassé.pourquoi cx_oracle n'exécute() pas comme ma chaîne maintenant?
La première chose était que cx_Oracle.connect voulait unicode plutôt une chaîne pour le nom d'utilisateur et mot de passe, qui était très facile à corriger. Mais maintenant, il continue à échouer sur cursor.execute et me dit que ma chaîne n'est pas une chaîne même lorsque type() me dit que c'est une chaîne.
Voici un script de test que j'ai utilisé initialement il y a longtemps et qui a bien fonctionné sur mon ancienne version mais qui ne fonctionne pas sur cx_Oracle maintenant.
import cx_Oracle
ip = 'url.to.oracle'
port = 1521
SID = 'mysid'
dsn_tns = cx_Oracle.makedsn(ip, port, SID)
connection = cx_Oracle.connect(u'name', u'pass', dsn_tns)
cursor = connection.cursor()
cursor.arraysize = 50
sql = "select isbn, title_code from core_isbn where rownum<=20"
print type(sql)
cursor.execute(sql)
for isbn, title_code in cursor.fetchall():
print "Values from DB:", isbn, title_code
cursor.close()
connection.close()
Quand je lance que je reçois:
retraçage (appel le plus récent en dernier): fichier "C: \ NetBeansProjects \ Python \ src \ db_temp.py", ligne 48, à curseur .execute (sql) TypeError: attendez None ou une chaîne
Est-ce que quelqu'un sait ce que je peux faire de mal?