【发布时间】:2018-03-22 14:37:43
【问题描述】:
我正在尝试通过 python 运行 sql 查询,但每次删除最后两行代码时,我都会收到一个我不理解的错误 - 下面的代码是我正在尝试运行的代码,这些是我删除的代码行:
1 - columnNames = [n.replace('b','') for n in list(results.columns.values)]
2 - results.columns = columnNames
import pyodbc
import pandas
cnxn = pyodbc.connect("DSN=XXX",autocommit=True)
sql = "select b.* from X.Y a inner join X.X b where a.tradeid = b.tradeid where a.productmaintypeid = 'InterestRateCapFloor' limit 10"
results = pandas.read_sql(sql, cnxn)
错误信息
DatabaseError: 执行失败 sql 'select b.* from trade.trades a inner join trade.legs b where a.tradeid = b.tradeid where a.productmaintypeid = 'InterestRateCapFloor' limit 10': ('HY000', “[HY000] [Cloudera][Hardy] (80) 执行查询时在服务器中引发语法或语义分析错误。来自服务器的错误消息:编译语句时出错:失败:ParseException 行 1:83 在 'where' 附近缺少 EOF tradeid' (80) (SQLExecDirectW)")
【问题讨论】:
-
我们还能看到错误吗?甚至可能是代码?试着给我们一个MCVE
-
和格式正确的代码:)
-
我要添加正确的代码
-
DatabaseError: 执行失败 sql 'select b.* from trade.trades a inner join trade.legs b where a.tradeid = b.tradeid where a.productmaintypeid = 'InterestRateCapFloor' limit 10': ('HY000', "[HY000] [Cloudera][Hardy] (80) 执行查询时在服务器中引发语法或语义分析错误。来自服务器的错误消息:编译语句时出错:FAILED:ParseException line 1:83 缺少 EOF at 'tradeid' 附近的 'where' (80) (SQLExecDirectW)")