繁体   English   中英

SQLAlchemy Cx_Oracle create_engine:无法设置arraysize

[英]Sqlalchemy cx_Oracle create_engine: cannot set arraysize

基于sqlalchemy文档,我应该能够在cxOracle上设置arraysize。 但是将其设置为create_engine arg无效: http : //docs.sqlalchemy.org/en/rel_0_9/dialects/oracle.html#dialect-oracle-cx_oracle-connect

import sqlalchemy
    url = sqlalchemy.engine.url.make_url(r'oracle+cx_oracle://user:pass@host:port/dbname') # replaced with appropriate db connection
    engine = sqlalchemy.create_engine(url, arraysize=50000)
    cursor = engine.raw_connection().cursor()
    print cursor.arraysize
    #still only 50

即使在连接字符串中设置它也不起作用:

import sqlalchemy
url = sqlalchemy.engine.url.make_url(r'r'oracle+cx_oracle://user:pass@host:port/dbname?arraysize=5000')
engine = sqlalchemy.create_engine(url)
cursor = engine.raw_connection().cursor()
print cursor.arraysize

我在做蠢事吗? 或者有人可以发布一个片段,成功在引擎级别设置arraysize。

我认为这里的问题是,您正在绕过正常机制,SQLAlchemy将通过该机制获取并配置游标以供自己使用。 通过使用raw_connection您可以直接从基础数据库驱动程序(cx_oracle)中获取游标,该游标的默认arraysize为50。如果您正在使用某些“常规” SQLAlchemy对象(例如,通过从引擎获取连接并调用execute ),那么您将遍历https://github.com/zzzeek/sqlalchemy/blob/rel_0_9_10/lib/sqlalchemy/dialects/oracle/cx_oracle.py#L526的代码路径,这确实可以设置SQLAlchemy将使用的游标上的传入arraysize

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM