由于某种原因,我使用以下方法将以下数组完全存储在 SQL 服务器中pyodbc以带有单引号的文本形式。
[‘萨钦’、‘尤拉吉’]
我使用下面的代码插入上面的值
tes_table= SQLCURSOR.execute('''INSERT INTO Test_Table(test_name) VALUES ('{}')
'''.format(arr))
我收到以下错误。
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near 'Sachin'. (102) (SQLExecDirectW)")
[13/Oct/2020 23:54:53] "POST /api/save HTTP/1.1" 500 77431
这是为什么使用字符串格式嵌入数据的另一个例子values插入 SQL 命令文本是一个坏主意。在这种情况下,呈现的字符串文字会产生语法错误,因为单引号未正确转义。
>>> arr = ['Sachin', 'Yuvraj']
>>> "... VALUES ('{}')".format(arr)
"... VALUES ('['Sachin', 'Yuvraj']')"
相反,您应该使用正确的参数化查询
sql = """\
INSERT INTO Test_Table (test_name) VALUES (?)
"""
tes_table = SQLCURSOR.execute(sql, str(arr))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)