Я использую (executemany) функцию из pyodb c для заполнения данных в базе данных ms sql. Это мой код:
def populate_database(conn):
tuples = [
('2020-04-13 00:50:42', 'AirShoppingRQ', 'ALEY', '2020-05-23', '', '', 'BRU-BLQ', ''),
('2020-04-13 00:50:43', 'AirShoppingRQ', 'ALEY', '2021-01-23', '', '', 'LIS-STO', '')
]
query_string = 'INSERT INTO mytable VALUES (?,?,?,?,?,?,?,?)'
cursor = conn.cursor()
#cursor.fast_executemany = True
cursor.executemany(query_string, tuples)
cursor.commit()
Работает нормально, но если я раскомментирую строку cursor.fast_executemany = True
, я получу следующую ошибку:
('22018', '[22018] [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification (0) (SQLExecute)')
Ниже приведена моя таблица:
CREATE TABLE [dbo].[mytable](
[field1] [datetime] NULL,
[field2] [varchar](50) NULL,
[field3] [varchar](20) NULL,
[field4] [datetime] NULL,
[field5] [datetime] NULL,
[field6] [varchar](20) NULL,
[field7] [varchar](40) NULL,
[field8] [varchar](40) NULL
)
Что-то не так с форматами? Чего мне не хватает при использовании cursor.fast_executemany = True
?