我正嘗試使用dataframe.to_sql函數將pandas dataframe df插入到SQL Server數據庫中。但我得到以下錯誤:使用python中的to_sql函數將數據框插入到Sql-server數據庫時出錯
源代碼:
import pyodbc
import sqlalchemy
import urllib
df #sample dataframe
params = urllib.parse.quote_plus("DRIVER={SQL Server};SERVER=GIRSQL.GIRCAPITAL.com;DATABASE=Tableau;UID=SQL_User;PWD=pass")
engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
engine.connect()
df.to_sql(name='[Tableau].[dbo].[Test table]',con=engine, index=False,
if_exists='append')
錯誤:
File "C:\Users\Arvinth\sqlalchemy\engine\default.py", line 470, in do_execute cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'INTEGER'. (102) (SQLExecDirectW)") [SQL: '\nCREATE TABLE [[Tableau].[dbo].[Test table]] (\n\t[A] INTEGER NULL, \n\t[B] INTEGER NULL, \n\t[C] INTEGER NULL\n)\n\n']
樣品數據框:
A B C
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
誰能請幫助解決問題。
這不是必需的* [Tableau]。[dbo]。*當您連接到* Tableau *並且默認架構是* dbo *。只需傳遞表名:'df.to_sql(name ='Test table',con = engine,index = False, if_exists ='append')' – Parfait
它的工作正常。非常感謝! –