【问题标题】:SAP HANA hdblci package - get data with column namesSAP HANA hdblci 包 - 使用列名获取数据
【发布时间】:2020-12-07 13:15:21
【问题描述】:

我正在使用hdbcli 包从 SAP HANA 加载数据。

问题:在加载数据时,我只得到了没有SQL表实际表头的值行。

当我只加载 3 列时(如下所示),我可以自己手动添加它们,即使它非常难看。当我执行 Select * 语句时,这变得不可能,因为我真的不想手动添加它们并且可能不知道何时有更改。

问题:是否有标志/命令可以从表中获取列标题?

代码-MRE:

#Initialize your connection
conn = dbapi.connect(
    address='00.0.000.00',
    port='39015',
    user='User',
    password='Password',
    encrypt=True, 
    sslValidateCertificate=False
)

cursor = conn.cursor()
sql_command = "select TITLE, FIRSTNAME, NAME from HOTEL.CUSTOMER;"
cursor.execute(sql_command)
rows = cursor.fetchall()  # returns only data, not the column values
for row in rows:
    for col in row:
        print ("%s" % col, end=" ")
    print (" ")
cursor.close()
conn.close()

【问题讨论】:

标签: python-3.x hana


【解决方案1】:

感谢@astentx 的评论,我找到了解决方案:

cursor = conn.cursor()
sql_command = "select TITLE, FIRSTNAME, NAME from HOTEL.CUSTOMER;"
cursor.execute(sql_command)
rows = cursor.fetchall()  # returns only data, not the column headers
column_headers = [i[0] for i in cursor.description]  # get column headers
cursor.close()
conn.close()

result = [[column_header]]  # insert header
for row in rows:  # insert rows
    current_row = []
    for cell in row: 
        current_row.append(cell)
    result.append(current_row)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多