我正在尝试UPDATE
从 python 脚本运行以下查询(注意我已经删除了数据库信息):
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
查询时没有问题,应该正确设置它。我确实必须调用CAST
查询SELECT
(我已经在sanction_id AS INT
[ int identity
on the database] 和action_summary AS TEXT
[ nvarchar
on the database] 中进行了转换)以正确填充数据,所以问题可能出在某个地方,但我不知道从哪里开始调试。将文本转换为NVARCHAR
也没有做任何事情。
下面是 data 中的行之一的示例:
(2861357, 'Exclusion Program: NonProcurement; Excluding Agency: HHS; CT Code: Z; Exclusion Type: Prohibition/Restriction; SAM Number: S4MR3Q9FL;')