我目前正在尝试使用pyodbc
从数据库A 中的表中选择数据,并将其插入数据库B 中的表中。我能够与两个数据库建立连接,所以我知道那里没有错误。另外,我的第一个cursor.execute命令(第9行)工作,因为我能够打印所有数据。
我遇到的问题是当我尝试将第一个cursor.execute命令中的数据插入到数据库B中时。关于同样的错误,有几个关于SO的问题,但是我已经检查过以确保我没有提交这些错误。 SQL Server中接受所有数据类型,我有正确数量的参数和参数标记,并且我确保Python代码中的列与输入和输出表都匹配。我完全陷入困境,非常感谢任何帮助。
我得到的具体错误是:
(' HYC00',' [HYC00] [Microsoft] [ODBC SQL Server驱动程序]可选功能 未实现(0)(SQLBindParameter)')
请参阅下面的代码:
import pyodbc
import time
cnxn1 = pyodbc.connect(r"DRIVER={SQL Server Native Client 11.0};SERVER='Server';" + \
"DATABASE='DatabaseA';Trusted_Connection=Yes")
cursor1 = cnxn1.cursor()
cnxn2 = pyodbc.connect(r"DRIVER={SQL Server};SERVER='Server'," + \
"user='Username', password='Password', database='DatabaseB'")
cursor2 = cnxn2.cursor()
SQL = cursor1.execute("select * from table.DatabaseA")
SQL2 = """insert into table.DatabaseB([col1], [col2], [col3], [col4],[col5], [col6], [col7],
[col8], [col9], [col10], [col11], [col12], [col13], [col14],
[col15], [col16],[col17], [col18], [col19], [col20], [col21],
[col22], [col23], [col24], [col25], [col26], [col27], [col28],
[col29], [col30], [col31])
values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"""
for row in cursor1.fetchall():
cursor2.execute(SQL2,row)
关于最后两行代码,我也试过以下内容但没有成功:
for row in SQL:
cursor2.execute(SQL2,row)