Python 无法解释 HANA table 路径中的特殊字符 (SQL)
Python cannot interprete special characters in path to HANA table (SQL)
我想直接从 python 读取存储在 HANA 中的 table。为此,我使用以下代码:
from hdbcli import dbapi
import pandas as pd
conn = dbapi.connect(
address="address",
port=XYZ,
user="user",
password="password"
)
print (conn.isconnected())
# Fetch table data
stmnt = "select * from '_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'"
cursor = conn.cursor()
cursor.execute(stmnt)
result = cursor.fetchall()
print('Create the dataframe')
问题出在 stmnt: 我尝试了不同的方式来放置路径名,以便 python 可以将其作为字符串读取,但 none 可以正常工作。我知道问题不在于技术,因为如果路径很简单并且不包含特殊字符,那么代码就可以工作。
我尝试了以下所有组合(以及其他组合):
stmnt = "select * from '_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'"
stmnt = """select * from '_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'"""
stmnt = "select * from \'_SYS_NAME\'\.\'part1.part2.part3.part4.part5.part6/table_name\'
stmnt = """select * from \'_SYS_NAME\'\.\'part1.part2.part3.part4.part5.part6/table_name\'"""
我得到的错误总是如下:
hdbcli.dbapi.Error: (257, 'sql syntax error: incorrect syntax near "_SYS_NAME": line 1 col 1 (at pos 1)')
我从 SQL 得到的原始路径是:
'_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'
知道我遗漏了什么吗?
你应该反转你的引号:
stmnt = 'select * from "_SYS_BIC"."rwev.dev.bw.project.si.churn/SI_CV_CHU_7_DATA_MODEL"'
我想直接从 python 读取存储在 HANA 中的 table。为此,我使用以下代码:
from hdbcli import dbapi
import pandas as pd
conn = dbapi.connect(
address="address",
port=XYZ,
user="user",
password="password"
)
print (conn.isconnected())
# Fetch table data
stmnt = "select * from '_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'"
cursor = conn.cursor()
cursor.execute(stmnt)
result = cursor.fetchall()
print('Create the dataframe')
问题出在 stmnt: 我尝试了不同的方式来放置路径名,以便 python 可以将其作为字符串读取,但 none 可以正常工作。我知道问题不在于技术,因为如果路径很简单并且不包含特殊字符,那么代码就可以工作。
我尝试了以下所有组合(以及其他组合):
stmnt = "select * from '_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'"
stmnt = """select * from '_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'"""
stmnt = "select * from \'_SYS_NAME\'\.\'part1.part2.part3.part4.part5.part6/table_name\'
stmnt = """select * from \'_SYS_NAME\'\.\'part1.part2.part3.part4.part5.part6/table_name\'"""
我得到的错误总是如下:
hdbcli.dbapi.Error: (257, 'sql syntax error: incorrect syntax near "_SYS_NAME": line 1 col 1 (at pos 1)')
我从 SQL 得到的原始路径是:
'_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'
知道我遗漏了什么吗?
你应该反转你的引号:
stmnt = 'select * from "_SYS_BIC"."rwev.dev.bw.project.si.churn/SI_CV_CHU_7_DATA_MODEL"'