Похоже, самый простой и быстрый способ - использовать python
вместе с библиотекой pandas
. Эта идея вдохновлена этим вопросом .
Общая идея состоит в том, чтобы загрузить данные из базы данных ODBC в набор pandas
фреймов данных, а затем попросить pandas
вывести данные в SQLite
.
Вот полный код для тех, кого это может заинтересовать:
import pyodbc
import sqlite3
import pandas
database_name = input("Enter ODBC database name: ")
source_connection = pyodbc.connect('DSN=' + database_name)
source_cursor = source_connection.cursor()
target_connection = sqlite3.connect(database_name + '.db')
# Ensuring that only 'tables' taken into account, not 'system tables', not 'views'
for table in filter(lambda x: x.table_type == 'TABLE', source_cursor.tables()):
table_name = table.table_name
table = pandas.read_sql_query(f"SELECT * from [{table_name}]", source_connection)
table.to_sql(table_name, target_connection, index_label='index')
source_cursor.close()
source_connection.close()
target_connection.close()