0
我正在使用Python 3.6.1和pypyodbc庫將.csv文件導入Management Studio中的本地數據庫。任何人都可以告訴我爲什麼這個代碼在Management Studio中可以很好地工作,但不是在我的pypyodbc腳本中?pypyodbc網絡路徑無法正常工作
Python腳本運行時沒有任何錯誤,但它實際上並未將C:\MemberMapUpdates
中的新.csv文件插入到CSVTest表中。當我在management studio中運行該SQL命令時,它會按預期插入值。 任何的見解值得讚賞。謝謝。
import pypyodbc
connection = pypyodbc.connect('Driver={SQL Server};'
'Server=SERVER-SQL;'
'Database=server1;'
'uid=sa;pwd=Pa$$word!')
cursor = connection.cursor()
SQLCommand = (
'''
drop table if exists CSVTest
create table CSVTest
(dccode varchar(255),
member varchar(255),
date_sub date,
date_add date,
sa_update date,
buff_rad float,
geom varchar(255),
sub_type varchar(255),
notes varchar(255))
bulk
insert CSVTest
from 'C:\MemberMapUpdates\MemberMapUpdates.csv'
with (FIRSTROW = 3, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
'''
)
cursor.execute(SQLCommand)
connection.close()
print('Process Completed')
與存儲過程更新腳本插入
import pypyodbc
#from osgeo import ogr
connection = pypyodbc.connect('Driver={SQL Server};'
'Server=SERVER-SQL;'
'Database=DB;'
'uid=sa;[email protected]!')
cursor = connection.cursor()
SQLCommand = ('exec FirstProcedure')
cursor.execute(SQLCommand)
connection.close()
print('Process Completed')
這是存儲過程:
drop table if exists CSVTest;
create table CSVTest
(dccode varchar(255),
member varchar(255),
date_sub date,
date_add date,
sa_update date,
buff_rad float,
geom varchar(255),
sub_type varchar(255),
notes varchar(255));
bulk
insert CSVTest
from '\\NETWORKSHARE\MemberMapUpdates\MemberMapUpdates.csv'
with (FIRSTROW = 3, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
您在這裏有幾個DDL/DML命令,並且遊標一次只能運行一個。考慮將所有內容放在存儲過程中並讓Python調用它。 – Parfait
感謝您的建議,但獲得了相同的結果。 – Matt
你嘗試了什麼?你分割了這些命令還是運行了一個存儲過程?請展示。 – Parfait