вставка кадра данных в базу данных Oracle с использованием pyodbc: ошибка: ('HY000', 'драйвер не выдал ошибку!') - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь вставить фрейм данных в базу данных Oracle, используя pyodbc. Мой код выглядит следующим образом:

pyodbc.pooling = False
conn_str = (
    r'DRIVER={Oracle in OraClient12Home1};'
    r'UID=***;'
    r'PWD=***;'
    ...
    ...)

conn = pyodbc.connect(conn_str, autocommit=True)
curs = conn.cursor()

curs.executemany('INSERT INTO TABLE.NAME(AUFTRAGNR, TYPNR, MENGE, CNT, LL_NR, LL_NR2, DATE) 
VALUES (?, ?, ?, ?, ?, ?, ?)', my_df.values.tolist())
curs.commit()
curs.close()

Одна строка кадра данных, которую я пытаюсь ввести:

['0010930795', '231', 1, 1, nan, nan, Timestamp('2019-06-07 09:41:03')]

Типы данных столбцов, как показано в Access:

AUFTRAGNR: Краткий текст
TYPNR: Краткий текст
MENGE: Номер
CNT: Номер
LL_NR: Краткий текст
LL_NR2: Краткий текст
DATE: Дата / Время

Я получаю ошибку:

Ошибка: ('HY000', 'Драйвер не выдал ошибку!')

Поскольку сообщение об ошибке не очень наглядно, и я не вижу очевидных ошибок в своем коде, я не знаю, как к этому подойти. Каковы возможные причины этой ошибки?

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 28 июня 2019

В конце концов я понял, в чем проблема. Тип данных Number, определенный в базе данных, ссылается на с плавающей точкой , а не целые числа , поэтому будет работать следующий ввод:

['0010930795', '231', 1.0, 1.0, nan, nan, Timestamp('2019-06-07 09:41:03')]

...