无法使用python pyodbc查询大容量插入数据
我正在努力将.csv中的数据插入SQL Server DB表。在SSMS中执行以下查询时,效果非常好:无法使用python pyodbc查询大容量插入数据,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我正在努力将.csv中的数据插入SQL Server DB表。在SSMS中执行以下查询时,效果非常好: BULK INSERT dbo.Technical_Indicators_Regime_Work_SP500_Constituents_Daily_New FROM 'C:\Users\krakowi\Desktop\S&P_Weights_FactSet_reformatted.csv' WITH (FIELDTERMINATOR = ';') 我认为类似的代码可以很容易地转换
BULK INSERT dbo.Technical_Indicators_Regime_Work_SP500_Constituents_Daily_New
FROM 'C:\Users\krakowi\Desktop\S&P_Weights_FactSet_reformatted.csv'
WITH (FIELDTERMINATOR = ';')
我认为类似的代码可以很容易地转换为以下代码:
def load_csv(load_sql):
'''
This function will load table from csv file according to
the load SQL statement through ODBC
'''
try:
cnxn = pyodbc.connect('Driver={SQL Server};'
'Server=localhost\SQLEXPRESS;'
'Database=test;'
'Trusted_Connection=yes;')
cursor = cnxn.cursor()
# Execute SQL Load Statement
cursor.execute(load_sql)
print('Loading table completed successfully.')
cnxn.close()
except Exception as e:
print("Error: {}".format(str(e)))
# Execution
load_sql = "BULK INSERT dbo.Technical_Indicators_Regime_Work_SP500_Constituents_Daily_New FROM 'C:\\Users\\krakowi\\Desktop\\S&P_Weights_FactSet_reformatted.csv' WITH(FIELDTERMINATOR = ';')"
load_csv(load_sql)
但不幸的是,什么也没有发生(没有插入记录),尽管它说已完成,没有任何错误。我做错了什么?是否需要使用批量?我不想逐个插入记录,因为这太长了。有没有其他方法不使用大容量实现此目的?但也许您可以使用ExecuteMy(语句、参数)尝试在连接后立即添加
cnxn.autocommit=True
。@GordThompson谢谢,这很有效!