Python не может интерпретировать специальные символы в пути к таблице HANA (SQL) - PullRequest
0 голосов
/ 08 октября 2018

Я хочу прочитать таблицу, хранящуюся в HANA, непосредственно из python.Для этого я использую следующий код:

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 мог прочитать его как строку, но ни один из них не работает.Я знаю, что проблема не в том, чтобы полагаться на технику, потому что, если путь прост и не содержит специальных символов, то код работает.

Я перепробовал все следующие комбинации (среди прочих):

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)')

И исходный путь как Iполучить его из SQL это:

'_SYS_NAME'.'part1.part2.part3.part4.part5.part6/table_name'

Есть идеи, что мне не хватает?

1 Ответ

0 голосов
/ 08 октября 2018

Вы должны отменить котировки:

stmnt = 'select * from "_SYS_BIC"."rwev.dev.bw.project.si.churn/SI_CV_CHU_7_DATA_MODEL"'
...