【发布时间】:2021-12-08 11:01:13
【问题描述】:
在 SQLAlchemy 中,我创建了一个引擎:
engine = create_engine(url="oracle+cx_oracle://user:xxxx@tns")
在 cx_Oracle 中,我将创建一个连接:
conn = cx_Oracle.connect(user="user", password="xxxx", dsn="tns")
然后我可以使用Connection.module 属性设置模块,该属性在查看 v$session 表时会适当地标记。
conn.module = "MyModule"
有没有办法在使用create_engine 创建 Oracle 会话模块名称后将其设置为 sqlalchemy.engine.Engine?
【问题讨论】:
-
您可以直接访问原始 cx_Oracle 连接 请参阅 docs.sqlalchemy.org/en/14/core/… 另一种可能的方法是使用类似 docs.sqlalchemy.org/en/14/dialects/… 的东西(如果您不使用 DRCP,则不带 DRCP 位)并设置属性在
creator()调用之后的pool.aquire()。 -
感谢@ChristopherJones 为我指明了正确的方向!我最终使用了钩子
DialectEvents.do_connect()钩子。 docs.sqlalchemy.org/en/14/core/… 符合目的。
标签: python sqlalchemy cx-oracle