如何使用 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
文件中。
我一直在尝试使用 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
文件中。