【发布时间】:2015-07-27 06:26:27
【问题描述】:
我正在使用sqlalchemy,想反映一些全局临时表的表结构。
from sqlalchemy import MetaData
...
meta = MetaData()
meta.reflect(bind = engine, only = ['tt_employees'], schema = schema)
我在建立连接时启用'echo=True':
db_engine = create_engine(engine.url.URL(**params), echo=self._echo)
我可以反映除全局临时表之外的所有表。这是因为 sqlalchemy 在 reflect() 中查找表的方式:
INFO sqlalchemy.engine.base.Engine
SELECT table_name
FROM all_tables
WHERE nvl(tablespace_name, 'no tablespace') NOT IN ('SYSTEM', 'SYSAUX')
AND OWNER = :owner
AND IOT_NAME IS NULL
AND DURATION IS NULL
Oracle 全局临时表的持续时间是“SYS$SESSION”,这就是没有全局临时表反映的原因。
版本信息
- sqlalchemy 1.0.4 py27_0
- Oracle 数据库 11g 企业版版本 11.2.0.4.0 - 64 位
对此我有什么办法吗?
【问题讨论】:
-
您使用的是什么版本的 SQLAlchemy 和 Oracle?
标签: python oracle sqlalchemy