2016-11-09 166 views
0

我想將數據從我擁有的數據庫移動到數據庫我只有讀/寫權限(作爲臨時表)。但是,我收到一個錯誤。請看下面的代碼:SQLAlchemy df.to_sql MSSQL

import pandas as pd 
import pyodbc 
import sqlalchemy 

con = pyodbc.connect(r'Driver={SQL Server};Server=MYServer;Database=DB_People;Trusted_Connection=yes;) 

sSQL = "SELECT * FROM tbl_People;" 

df = pd.read_sql(sSQL, con) 

con.close() 

con = pyodbc.connect(r'Driver={SQL Server};Server=NOT_MyServer;Database=DB_People;Trusted_Connection=yes;) 

sSQL = "CREATE TABLE [##People Table] (p_Name varchar(25), p_DOB char(10));" 

con.execute(sSQL) 

con.committ() 

engine = sqlalchemy.create_engine('mssql://NOT_MyServer/DB_People?Driver=SQL+Server+Native+Client+11.0?trusted_connection=yes') 

df.to_sql("##People Table") 

我得到的錯誤:

DBAPIError: (pyodbc.Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') 

任何線索的問題是什麼?我指定我的連接的驅動程序,我知道了臨時表存在,因爲當我通過SSMS的連接,我可以查詢表(雖然在這一點上是沒有任何記錄。

回答

0

看來,如果我有發現問題(S):

  1. 「創建表」功能是不需要的df.to_sql創建表
  2. 取而代之的是在驅動程序名稱「+」,我能夠與他們更換%20

這對我有效。

相關問題