SQLAlchemy MetaData.reflect在Oracle数据库中找不到表

SQLAlchemy MetaData.reflect在Oracle数据库中找不到表,oracle,reflection,sqlalchemy,metadata,Oracle,Reflection,Sqlalchemy,Metadata,我正试图将现有的Oracle模式反向工程到一些声明性SQLAlchemy模型中。我的问题是,当我使用时,它在我的模式中找不到表,只是一个全局临时表。但是,我仍然可以查询其他表 我正在使用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 >>> en

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

我正在使用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
导入sqlalchemy >>>engine=sqlalchemy.create_引擎('oracle+cx_oracle://user:pass@localhost/xe') >>>md=sqlalchemy.MetaData(bind=engine) >>>反映医学博士() >>>md.表格 immutabledict({u'my_gtt]:表(u'my_gtt),元数据(bind=Engine)(oracle+cx_oracle://user:pass@localhost/xe)),列(u'id',数(精度=15,刻度=0,asdecimal=False),表=),列(u'parent\u id',数(精度=15,刻度=0,asdecimal=False),表=),列(u'query\u id',数(精度=15,刻度=0,asdecimal=False),表=),架构=None)}) >>>len(engine.execute('select*from my_regular_table').fetchall() 4.
多亏@zzzeek的一些快速帮助,我发现(通过使用
echo='debug'
参数到
create_engine
)我的问题是由旧用户拥有的表引起的,即使当前用户可以从默认模式访问它们,而不需要任何显式的同义词