Python - Вставить таблицу INTO SQLite из MS SQL Server - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь запросить MS SQL Server для table.column, а затем вставить этот вывод в таблицу sqlite.

В этом примере есть один числовой столбец в исходной таблице SQL Server. Я думаю, что я почти получил это, отыскивая другие ответы.

Пожалуйста, дайте мне знать, что мне не хватает.

import sqlite3
import pyodbc


#def connect_msss():
ODBC_Prod = ODBC_Prod 
SQLSN = SQLSN 
SQLpass = SQLpass 
conn_str = ('DSN='+ODBC_Prod+';UID='+SQLSN+';PWD='+SQLpass)
conn = pyodbc.connect(conn_str)


#def connect_sqlite():
sl3Conn = sqlite3.connect('server_test.db')
c = sl3Conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS mrn_test (PTMRN NUMERIC)')


#def query_msss():

cur = conn.cursor()
cur.execute("SELECT TOP 50 PTMRN FROM dbo.atl_1234_mrntest")
rows = cur.fetchall()
for row in rows:
    c.execute("INSERT INTO mrn_test VALUES (?)", row)
conn.commit()


#connect_msss()
#connect_sqlite()
#query_msss()

Ошибка 1:

c.execute ('СОЗДАЙТЕ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ mrn_test (PTMRN NUMERIC) ')

 Out[117]: <sqlite3.Cursor at 0x2d1a742fc70>

Ошибка 2:

cur = conn.cursor () cur.execute ("ВЫБРАТЬ ТОП-50 PTMRN ОТ dbo.atl_1234_mrntest ")

Out[118]: <pyodbc.Cursor at 0x2d1a731b990>

1 Ответ

0 голосов
/ 05 сентября 2018

Вы не фиксируете выполненные изменения в соединении sqlite, после шага c.execute вы фиксируете соединение MySQL DB. Я думаю, вам нужно заменить conn.commit() в конце на sl3Conn.commit().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...