编写应该返回所有对象的select语句

时间:2018-04-08 07:09:14

标签: oracle

我是Oracle新手。你能帮我写一下select查询,它应该返回给定模式名称的表名,列名,约束,索引,分区。请帮忙。

3 个答案:

答案 0 :(得分:1)

我们可以从数据字典中获取此信息:

  • 表名= all_tables
  • 列名= all_tab_columns
  • constraints = all_constraints
  • indices = all_indexes
  • partitions = all_tab_partitions

例如

select table_name
from all_tables
where owner = 'WHOEVER';

以下是the Oracle Reference guide中数据字典视图定义的链接。

ALL_视图仅确定您被授予权限的对象。如果您具有DBA权限,则可以使用DBA_等效项来显示所有模式中的所有对象。

答案 1 :(得分:1)

除了你已被告知的内容之外,请尝试记住" 字典"字;有时它非常有用。

例如,您需要找到有关约束的一些信息,但不知道要使用哪个来源 - 字典知道,只要问:

SQL> col comments format a48
SQL> select * from dictionary
  2  where lower(comments) like '%constraint%'
  3  order by table_name;

TABLE_NAME                     COMMENTS
------------------------------ ------------------------------------------------
ALL_CONS_COLUMNS               Information about accessible columns in constrai
                               nt definitions

ALL_CONSTRAINTS                Constraint definitions on accessible tables
USER_CONS_COLUMNS              Information about accessible columns in constrai
                               nt definitions

USER_CONSTRAINTS               Constraint definitions on user's own tables

SQL>

所以,

  • 你可以阅读Oracle文档和学习这样的东西(这是最好的选择;没有人可以窃取你的知识),或者
  • Google for it(这是大多数人通常所做的,你不会相信它,成功),或者
  • 在互联网上某处发布一个问题,等待一些好心灵带给你救赎,或者
  • 放弃,去种植土豆

答案 2 :(得分:0)

Oracle提供了大量视图来通知您有关数据库结构的信息。一些示例:user_tab_columns,v $ tablespace和许多其他示例。搜索Oracle“表格数据字典视图”了解更多信息。