簡體   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