我应该从oracle数据库提取数据。 如何找出数据库中定义了哪个模式? 当我没有在元数据()的描述中定义任何模式时,我找不到任何表。 感谢您的帮助,sqlalchemy oracle scheme
回答
默认的Oracle模式匹配Oracle连接中使用的用户名。 如果您没有看到任何表格 - 则表示这些表格是在另一个模式中创建的。
看起来你这里有两个问题:
1)有关甲骨文公司的模式 - 如何找到模式和表在Oracle中
2)关于SQLAlchemy的思考 - 如何指定的Oracle架构表
你可以在很多地方找到第一个问题的答案。即这里:https://stackoverflow.com/a/2247758/1296661
回答第二个问题: 如果Table类的构造函数与默认用户的模式不同,则该类的构造函数具有指定表模式的模式参数。在这里看到更多 http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html#sqlalchemy.schema.Table
这里是python代码来回答第二个问题。您需要设置数据库连接和表名值,以匹配您的情况:
from sqlalchemy import Table
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
engine = create_engine('oracle://<user_name>:<password>@<hostname>:1521/<instance name>', echo=True)
Base = declarative_base()
reflected_table = Table('<Table name>',
Base.metadata,
autoload=True,
autoload_with=engine,
schema='<Schema name other then user_name>')
print [c.name for c in reflected_table.columns]
p = engine.execute("SELECT OWNER,count(*) table_count FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' GROUP BY OWNER");
for r in p:
print r
祝使用sqlschema和反射特性 - 这是一个很大的乐趣。你可以在你的程序中定义你的Python程序几乎不需要定义模式信息。
我在生产中使用oracle db这个特性 - 我唯一需要定义的是明确设置外键和主键的表之间的关系。
谢谢你的回答。但据我所知,如果不是数据库管理员,无法从数据库中获取所有模式的列表。 – user1711699
通常不需要管理员来获取oracle中的列表表和模式的权限。这取决于用户帐户拥有什么权限,但通常有这样的权限。尝试运行此查询: SELECT OWNER,count(*)table_count FROM ALL_OBJECTS WHERE OBJECT_TYPE ='TABLE' GROUP BY OWNER; – vvladymyrov
再次感谢您。我怎样才能在SQLAlchemy中做到这一点?我如何查询整个数据库? sqlalchemy中的“all_objects”是什么? – user1711699
- 1. sqlalchemy Oracle REF CURSOR
- 2. SqlAlchemy Oracle DataTime格式
- 3. 在SQLAlchemy + Oracle中过滤空字符串
- 4. 使用SQLAlchemy的Oracle数据库模式
- 5. 使用SQLALCHEMY连接到Oracle数据库
- 6. 你用Scheme Scheme宏做了些什么?
- 7. REST url scheme
- 8. JsFiddle-like color scheme
- 9. Yammer URL scheme android
- 10. 错误:for:undefined(Scheme)
- 11. Andmap \ ormap - chez scheme
- 12. Posn in scheme/DrRacket
- 13. Apple Music URL Scheme
- 14. Scheme Let语句
- 15. Curriculum using Scheme
- 16. facetime:// url scheme
- 17. College Work - Scheme
- 18. Scheme或Common Lisp?
- 19. Scheme对输出
- 20. Preorder In Scheme
- 21. SCHEME | λ与λ?
- 22. openURL tel-scheme iPhone
- 23. DrRacket/Scheme circle undefined
- 24. Gmail like URL scheme
- 25. Scheme null?声明
- 26. chez scheme special lambda
- 27. Scheme Inverse List Function
- 28. Scheme vs Common Lisp
- 29. Scheme列表zipping
- 30. REST http scheme
或者我应该先问一下,是否有可能做这样的事情? – user1711699