运行 来自 python 的 SAP Hana 查询时出现编程错误
ProgrammingError when running a SAP Hana query from python
我使用 sqlalchemy 连接到 SAP Hana
_dsn='dsn'
conn_str = 'mssql+pyodbc://@{dsn}'.format(dsn=_dsn)
engine = sa.create_engine((conn_str)
然后我有一个使用 运行() 函数的 python 文件。
def run(engine):
"""
TBD
"""
query =
"""
SELECT
"CalendarDay",
"Score"
FROM "Table"
WHERE "PEvent" = ''H'' OR "PEvent" = ''T''
ORDER BY "CalendarDay" DESC, "Score" ASC
"""
result = pd.read_sql(query, engine)
return result
这是我收到的第 2 条错误消息:
ProgrammingError: ('42000', '[42000] [SAP AG][LIBODBCHDB SO][HDBODBC] Syntax error or access violation;257 sql syntax error: incorrect syntax near "H": line 5 col 25 (at pos 328) (257) (SQLExecDirectW)')
和
ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000] [SAP AG][LIBODBCHDB SO][HDBODBC] Syntax error or access violation;257 sql syntax error: incorrect syntax near "H": line 15 col 25 (at pos 328) (257) (SQLExecDirectW)') [SQL: '\n SELECT\n "CalendarDay",\n "Score",\n FROM "Table"\n WHERE "PEVENT" = \'\'H\'\' OR "PEVENT" = \'\'T\'\'\n ORDER BY "CalendarDay" DESC, "Score" ASC\n
']
我的猜测是 H 和 T 旁边的那些反斜杠造成了这个问题。
因为我们在查询的开头有一个 ' 那么 \'H 前面的 ' 关闭字符串。
不幸的是,我找不到正确的方法来编写我的 python 代码以便 SAP Hana 可以读取它。
我找到了一种不同的连接方式来处理这个问题。
conn = pyodbc.connect(DSN='dsn')
cursor = conn.cursor()
cursor.execute(query)
rows = cursor.fetchall()
查询中的此连接句柄字符串问题。
我使用 sqlalchemy 连接到 SAP Hana
_dsn='dsn'
conn_str = 'mssql+pyodbc://@{dsn}'.format(dsn=_dsn)
engine = sa.create_engine((conn_str)
然后我有一个使用 运行() 函数的 python 文件。
def run(engine):
"""
TBD
"""
query =
"""
SELECT
"CalendarDay",
"Score"
FROM "Table"
WHERE "PEvent" = ''H'' OR "PEvent" = ''T''
ORDER BY "CalendarDay" DESC, "Score" ASC
"""
result = pd.read_sql(query, engine)
return result
这是我收到的第 2 条错误消息:
ProgrammingError: ('42000', '[42000] [SAP AG][LIBODBCHDB SO][HDBODBC] Syntax error or access violation;257 sql syntax error: incorrect syntax near "H": line 5 col 25 (at pos 328) (257) (SQLExecDirectW)')
和
ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000] [SAP AG][LIBODBCHDB SO][HDBODBC] Syntax error or access violation;257 sql syntax error: incorrect syntax near "H": line 15 col 25 (at pos 328) (257) (SQLExecDirectW)') [SQL: '\n SELECT\n "CalendarDay",\n "Score",\n FROM "Table"\n WHERE "PEVENT" = \'\'H\'\' OR "PEVENT" = \'\'T\'\'\n ORDER BY "CalendarDay" DESC, "Score" ASC\n
']
我的猜测是 H 和 T 旁边的那些反斜杠造成了这个问题。 因为我们在查询的开头有一个 ' 那么 \'H 前面的 ' 关闭字符串。
不幸的是,我找不到正确的方法来编写我的 python 代码以便 SAP Hana 可以读取它。
我找到了一种不同的连接方式来处理这个问题。
conn = pyodbc.connect(DSN='dsn')
cursor = conn.cursor()
cursor.execute(query)
rows = cursor.fetchall()
查询中的此连接句柄字符串问题。