if platform[0:3]=='lin':
oracledriver = '{Oracle}'
elif platform[0:3]=='win':
oracledriver = 'Oracle in OraClient12home2'
oracledbq = 'uat:1521/uat'
oracleuid = 'user'
oraclepwd = 'pwd'
oracleConn = pyodbc.connect(DRIVER=oracledriver, UID=oracleuid, PWD=oraclepwd, DBQ=oracledbq)
cursor = oracleConn.cursor()
cursor.fast_executemany = True
cursor.executemany("INSERT INTO matrix_new (A,B,C,D,E,F,G,H) values (?,?,?,?,?,?,?,?)",tuples)
pyodbc.Error: ('HY000', 'The driver did not supply an error!')
Я пытаюсь пакетно вставить около 30000 строк. Я даже пытался использовать вставку кусками по 100, но все равно это не удалось.
Код отлично работает на машине с Windows. Не совсем уверен, чего не хватает.
В настоящее время используется pyodbc, сервер Oracle. Любые идеи?
Нет кода? Как вы установили курсор? См. Как спросить и минимальный воспроизводимый пример.
Комментарии в github.com/mkleehammer/pyodbc/blob/master/src/errors.cpp, которые могут применяться. Строка 334: «Это происходит только при использовании unixODBC. (Еще не пробовал iODBC.) Либо драйвер, либо диспетчер драйверов содержат ошибки и сигнализируют об ошибке без записи информации об ошибке». Кроме того, строка 236: «Если функция не работает, например, если у нее заканчивается память, возвращается ноль». В Oracle проверьте журналы трассировки. Это дает местоположение: SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Default Trace File';
1. Добавлен код предварительного курсора, чтобы показать, как установлен курсор. 2. Я создаю таблицу на Python и пытаюсь вставить ее.





Откуда вы берете данные? Если это файл CSV, вы можете использовать
LOAD DATA INFILE.