2013-04-10 93 views
1

我試圖運行從一個Python腳本以下UPDATE查詢(請注意,我已經刪除了數據庫信息)freetds的/ SQL服務器更新查詢無限期掛起

print 'Connecting to db for update query...' 
db = pyodbc.connect('DRIVER={FreeTDS};SERVER=<removed>;DATABASE=<removed>;UID=<removed>;PWD=<removed>') 
cursor = db.cursor() 
print ' Executing SQL queries...' 
for i in range(len(data)): 
    sql = ''' 
     UPDATE product.sanction 
     SET action_summary = '{action_summary}' 
     WHERE sanction_id = {sanction_id}; 
     '''.format(sanction_id=data[i][0], action_summary=data[i][1]) 
    cursor.execute(sql) 
cursor.close() 
db.commit() 
db.close() 

然而,它掛起無限期,沒有錯誤。

我是pyodbc的新手,但應該正確設置,因爲我在執行SELECT查詢時沒有問題。我也有打電話給CASTSELECT查詢(我已經投sanction_id AS INTaction_summary AS TEXT [nvarchar對數據庫] [int identity對數據庫])正確填寫資料,所以也許問題就出在某個地方,但我不知道在哪裏開始調試。將文本轉換爲NVARCHAR也沒有做任何事情。

下面是數據行的一個示例:

(2861357, 'Exclusion Program: NonProcurement; Excluding Agency: HHS; CT Code: Z; Exclusion Type: Prohibition/Restriction; SAM Number: S4MR3Q9FL;') 

回答

1

我無法找到我的問題,但我最終使用查詢集,而不是運行UPDATE查詢。