有没有办法在python hdbcli dbapi中选择架构?

问题描述

根据documentation,连接到HANA数据库所需的参数是主机,端口,用户密码

from hdbcli import dbapi
conn = dbapi.connect(
    address="<hostname>",port=3<NN>MM,user="<username>",password="<password>"
)
cursor = conn.cursor()

认选择用户名作为架构。有没有办法指定架构名称

解决方法

AFAIK没有连接属性,该属性允许设置/切换到特定架构。

但是,您可以轻松地做的是在创建连接后立即切换到所需的架构:

conn = dbapi.connect(
    address = 'hxehost',port = '39013',# connecting to the HANA system,not the DB directly
    user = '...',password = '...',databasename = 'HXE',# using the DB name instead of a port number
    #key='USER1UserKey',# address,port,user and password are retreived from the hdbuserstore
    encrypt=True,# must be set to True when connecting to HANA Cloud
    sslValidateCertificate=False # True HC,False for HANA Express.
)

#If no errors,print connected
print('connected')

c1 = conn.cursor()
c1.execute("SET SCHEMA R_C")       # <-- here we set the current schema for the connection
c1.execute("SELECT current_schema FROM DUMMY") # <-- checking the current schema
rows = c1.fetchall();          # <-- [('R_C',)]

这对我来说效果很好,除了设置模式的附加命令外,我看不到任何副作用。