fast_executemany support for various ODBC drivers - mkleehammer/pyodbc GitHub Wiki

Not all ODBC drivers support parameter arrays, the internal ODBC mechanism that fast_executemany uses to do its magic. If you have additional or updated information on a particular driver please feel free to update this list.

Database Driver Name Driver Version OS Result Notes
Informix odbc for informix [iclit09b.so] Linux crashes CPython interpreter issue #989
Microsoft Access Microsoft Access Driver (*.mdb, *.accdb) Access 2010 Windows crashes CPython interpreter
Microsoft SQL Server ODBC Driver 17 for SQL Server 17.x Linux/Windows Works local temporary tables, TVPs, performance inserting NULLs
Microsoft SQL Server FreeTDS [libtdsodbc.so] 01.00.0082 Linux crashes CPython interpreter
MySQL MySQL ODBC 8.2 ANSI Driver 08.02.000 Windows does not work throws 'Converting decimal loses precision' ProgrammingError for Decimal parameters, otherwise no effect
MySQL MySQL ODBC 8.2 Unicode Driver 08.02.000 Windows does not work throws 'Converting decimal loses precision' ProgrammingError for Decimal parameters, otherwise no effect
Oracle Oracle ODBC instant client 19.9 19.9 Linux Works
PostgreSQL PostgreSQL Unicode(x64) 12.01.00 Linux does not work loses fractional seconds, otherwise no effect
PostgreSQL PostgreSQL Unicode(x64) 13.02.00 Windows does not work loses fractional seconds, issue #1306
SAP ASE (Sybase) Adaptive Server Enterprise (ANSI) [libsybdrvodb-sqllen8.so] 16.0.03.02 Linux Works tested using charset=utf8
SAP ASE (Sybase) FreeTDS [libtdsodbc.so] 01.01.0036 Linux crashes CPython interpreter
SQLite SQLite3 ODBC Driver [sqlite3odbc.dll] 0.9998 Windows crashes CPython interpreter

"No effect" means that enabling fast_executemany does not cause errors, but it also doesn't make any significant difference to the amount of network traffic generated by an executemany call.