gpt4 book ai didi

python - 使用 pypyodbc 访问名称中包含空格的表

转载 作者:行者123 更新时间:2023-11-28 21:55:39 25 4
gpt4 key购买 nike

这个命令工作正常..

count = conn.cursor().execute("select COUNT(*) FROM Orders;").fetchall()

但是这个命令会返回一个错误

count = conn.cursor().execute("select COUNT(*) FROM "Summary of Sales"; ").fetchall()

错误是..

Traceback (most recent call last):
File "python-database.py", line 39, in <module>
print(row_count())
File "python-database.py", line 29, in row_count
count = conn.cursor().execute(query).fetchall()
File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 1595, in execute
self.execdirect(query_string)
File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 1621, in execdirect
check_success(self, ret)
File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 985, in check_success
ctrl_err(SQL_HANDLE_STMT, ODBC_obj.stmt_h, ret, ODBC_obj.ansi)
File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 953, in ctrl_err
raise ProgrammingError(state,err_text)
pypyodbc.ProgrammingError: (u'42000', u"[42000] [FreeTDS][SQL Server]Incorrect syntax near 'Summary of Sales'.")

我已经使用 SQL 事件探查器来查看确切的 sql 查询,它非常完美,我什至将其复制并粘贴到与数据库的控制台 session 中进行测试,它返回了行数而没有问题。我已经尝试了所有不同的单引号和双引号组合。似乎如果放置一个没有任何引号的单个单词的表名,它就可以正常工作。如果我尝试输入一个由多个单词组成的表名,我必须使用引号,但失败了。

希望你们能对此有所了解,它停止了我的项目,:(

最佳答案

您在字符串内部使用了双引号,并且还用于分隔字符串。要么转义引号,要么使用单引号来分隔字符串,如下所示:

count = conn.cursor().execute('select COUNT(*) FROM "Summary of Sales"; ').fetchall()

希望对您有所帮助。

关于python - 使用 pypyodbc 访问名称中包含空格的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com