Некоторое время назад я скачал cx_oracle и написал скрипт для преобразования данных в XML. Мне пришлось заново установить операционную систему и получить последнюю версию cx_Oracle (5.0.3), и вдруг мой код сломался.
Во-первых, cx_Oracle.connect требовал Unicode, а не строку для имени пользователя и пароля, что было очень легко исправить. Но теперь он продолжает сбой на cursor.execute и говорит мне, что моя строка не является строкой, даже когда type () говорит мне, что это строка.
Вот тестовый скрипт, который я изначально использовал несколько лет назад и отлично работал на моей старой версии, но сейчас не работает на cx_Oracle.
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()
Когда я бегу, я получаю:
Traceback (последний вызов был последним):
Файл "C: \ NetBeansProjects \ Python \ src \ db_temp.py", строка 48, в
cursor.execute (SQL)
Ошибка типа: ожидается None или строка
Кто-нибудь знает, что я могу делать не так?