gpt4 book ai didi

python - 使用 Pythons SQLAlchemy 反射(reflect) Oracle 全局临时表

转载 作者:行者123 更新时间:2023-12-05 07:55:11 24 4
gpt4 key购买 nike

我正在使用 sqlalchemy,想反射(reflect)一些全局临时表的表结构。

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)

我可以反射(reflect)除全局临时表之外的所有表。这是因为 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”,这就是没有全局临时表反射(reflect)的原因。

版本信息

  • sqlalchemy 1.0.4 py27_0
  • Oracle 数据库 11g 企业版 11.2.0.4.0 版 - 64 位

我能做些什么吗?

最佳答案

通过 MetaData.Tables() 附加到元数据似乎可行,但猜测有更好的解决方案:

    Test = [sqlalchemy.Table(t, meta, autoload=True, autoload_with=_engine, schema=_schema)
for t in schedule.tables.values]

关于python - 使用 Pythons SQLAlchemy 反射(reflect) Oracle 全局临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30257643/

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