如何使用 ibm_db_dbi 连接数据库来设置当前架构?

How do I set current schema by using ibm_db_dbi to connect database?

我一直在尝试使用 ibm_db_dbi 连接数据库并阅读 pandas.read_sql 的 table。

创建连接后,我使用 set_current_schema('mySchema') 为 myConnection 设置当前架构,这样我就不需要在每个 [=32 前面指定架构=]秒。

但是,当我使用 pd.read_sql(sql, myConnection 读取 table 时,它总是使用用户名作为架构,而不是我指定的架构。

有办法解决吗?

如有任何帮助,我们将不胜感激。

谢谢,

特里

import ibm_db_dbi as db2
import pandas as pd

myConnection = db2.connect("DATABASE=name;HOSTNAME=host;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;",  " ", " ")

myConnection.set_current_schema('mySchema')

sql = ('SELECT NAME FROM EMPLOYEE')

names = pd.read_sql(sql, myConnection)

您可以使用 ;CURRENTSCHEMA=MYSCHEMA;

扩展连接字符串

这适用于 pandas 和 Db2。

示例

myConnection = db2.connect("DATABASE=name;HOSTNAME=host;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;CURRENTSCHEMA=MYSCHEMA;",  " ", " ")

对于使用 DSN(而不是脚本中的连接字符串)的人,您可以将此附加信息作为数据库参数(和 DSN 参数)包含在 db2dsdriver.cfg 文件中。