gpt4 book ai didi

oracle - SQLAlchemy MetaData.reflect 在 Oracle db 中找不到表

转载 作者:行者123 更新时间:2023-12-04 18:11:41 27 4
gpt4 key购买 nike

我正在尝试将现有的 Oracle 模式逆向工程为一些声明性 SQLAlchemy 模型。我的问题是当我使用 MetaData.reflect ,它在我的架构中找不到表,只是一个全局临时表。但是,我仍然可以查询其他表。

我正在使用 SQLAlchemy 0.7.8、CentOS 6.2 x86_64、python 2.6、cx_Oracle 5.1.2 和 Oracle 11.2.0.2 Express Edition。这是我正在谈论的内容的快速示例:

>>> import sqlalchemy
>>> engine = sqlalchemy.create_engine('oracle+cx_oracle://user:pass@localhost/xe')
>>> md = sqlalchemy.MetaData(bind=engine)
>>> md.reflect()
>>> md.tables
immutabledict({u'my_gtt': Table(u'my_gtt', MetaData(bind=Engine(oracle+cx_oracle://user:pass@localhost/xe)), Column(u'id', NUMBER(precision=15, scale=0, asdecimal=False), table=<my_gtt>), Column(u'parent_id', NUMBER(precision=15, scale=0, asdecimal=False), table=<my_gtt>), Column(u'query_id', NUMBER(precision=15, scale=0, asdecimal=False), table=<my_gtt>), schema=None)})
>>> len(engine.execute('select * from my_regular_table').fetchall())
4

最佳答案

感谢@zzzeek 的一些快速帮助,我发现(通过使用 echo='debug'create_engine 参数)我的问题是由旧用户拥有的表引起的,即使当前用户可以从默认模式访问它们不需要任何明确的同义词。

关于oracle - SQLAlchemy MetaData.reflect 在 Oracle db 中找不到表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com