【问题标题】:sqlalchemy create_engine issue with oracleoracle的sqlalchemy create_engine问题
【发布时间】:2017-09-26 17:07:22
【问题描述】:

我正在尝试连接到我的 Oracle 数据库,但我无法创建引擎:

engine = create_engine('oracle://user:pass@localhost:1521/dbname')

我得到的错误是:

/anaconda2/lib/python2.7/site-packages/sqlalchemy/dialects/oracle/cx_oracle.pyc in __init__(self, auto_setinputsizes, exclude_setinputsizes, auto_convert_lobs, threaded, allow_twophase, coerce_to_decimal, coerce_to_unicode, arraysize, **kwargs)
705         if hasattr(self.dbapi, 'version'):
706             self.cx_oracle_ver = tuple([int(x) for x in
707                                         self.dbapi.version.split('.')])
708         else:
709             self.cx_oracle_ver = (0, 0, 0)

ValueError: invalid literal for int() with base 10: '0b1'

我的操作系统:RedHat 7

Oracle Express 11g

Python 2.7 蟒蛇

cx_Oracle 6.0

cx_Oracle.clientversion() = (12, 2, 0, 1, 0)

知道如何解决这个问题吗?

【问题讨论】:

  • 这看起来像错误。 SQLAlchemy 是什么版本? (import sqlalchemy; print(sqlalchemy.__version__)) 如果老了,还有机会升级吗?

标签: python oracle sqlalchemy cx-oracle


【解决方案1】:

由于 cx_Oracle 的预发布版本 6.0b1 中的“b”,这是 SQLAlchemy 中的一个错误(或至少是不兼容)。该问题已报告 here 并带有建议的修复程序,您可以将其应用于您自己的 SQLAlchemy 安装,或者您可以等待修复程序发布。或者,如果您使用 cx_Oracle 5.3 版,则不会出现该问题。

【讨论】:

    猜你喜欢
    • 2016-08-28
    • 2019-10-30
    • 2021-06-25
    • 2021-03-11
    • 2021-12-04
    • 2012-12-25
    • 1970-01-01
    • 2017-02-21
    • 2021-10-11
    相关资源
    最近更新 更多