在 python hdbcli dbapi 中有 select 模式的方法吗?
Is there a way to select schema in 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()
这默认选择用户名作为架构。有没有办法指定架构名称?
据我所知,没有允许 setting/switching 到特定架构的连接 属性。
但是,您可以轻松做到的是在创建连接后立即切换到您想要的模式:
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',)]
这对我来说效果很好,除了设置架构的附加命令外,我没有看到任何 side-effects。
根据documentation,连接到HANA数据库所需的参数是主机、端口、用户和密码。
from hdbcli import dbapi
conn = dbapi.connect(
address="<hostname>",
port=3<NN>MM,
user="<username>",
password="<password>"
)
cursor = conn.cursor()
这默认选择用户名作为架构。有没有办法指定架构名称?
据我所知,没有允许 setting/switching 到特定架构的连接 属性。
但是,您可以轻松做到的是在创建连接后立即切换到您想要的模式:
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',)]
这对我来说效果很好,除了设置架构的附加命令外,我没有看到任何 side-effects。