![](/img/trans.png)
[英]Sqlalchemy cx_Oracle create_engine: cannot set arraysize
[英]How to set module name in SQLAlchemy and cx_Oracle with create_engine()?
在 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"
有没有办法到Oracle会话模块名称设置为sqlalchemy.engine.Engine
一旦其与创建create_engine
?
我最终使用了DialectEvents.do_connect()
钩子,这对我来说效果很好。
import cx_Oracle
from sqlalchemy import create_engine, event
engine = create_engine(url="oracle+cx_oracle://user:xxxx@tns")
@event.listens_for(engine, "do_connect")
def receive_do_connect(dialect, conn_rec, cargs, cparams):
"""listen for the 'do_connect' event"""
connection = cx_Oracle.connect(*cargs, **cparams)
connection.module = "MyModule"
return connection
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.