Я запускаю несколько сценариев SQL следующим образом:
db_conn = (created earlier)
cursor = db_conn.cursor()
script_file = open(join(script_path, script_name))
script_text = script_file.read()
script_file.close()
num_rows = cursor.executemany(script_text, None)
Это работает как чудо на моем Mac, но не работает в Linux, executemany(...)
просто ничего не делает и возвращает None
. Настройки соединения в порядке: они идентичны в обеих системах, и я могу выполнить сценарии SQL вручную, то есть с помощью клиента командной строки mysql. Кроме того, MySQLDB.execute(...)
отлично работает с более короткими операторами SQL, но, вероятно, завершается ошибкой с измененным разделителем в определении хранимой процедуры (в любом случае сообщает об ошибке SQL вокруг строки DELIMITER).
Кто-нибудь когда-нибудь сталкивался с чем-то подобным?
Кто-нибудь успешно использует executemany()
в Linux?
Версия:
(по какой-то причине после Kubuntu 10.10 есть дополнительная пустая строка, от которой я не могу избавиться, возможно, ошибка стека переполнения ...)