当前位置: 首页 > 面试题库 >

获取Oracle中所有表的列表?

楚宏胜
2023-03-14
问题内容

获取Oracle中所有表的列表?


问题答案:
SELECT owner, table_name
  FROM dba_tables

假设您有权访问DBA_TABLES数据字典视图。如果您没有这些特权但需要它们,则可以请求DBA显式授予您对该表的特权,或者请求DBA授予您该SELECT ANY DICTIONARY特权或SELECT_CATALOG_ROLE角色(这两者都将允许您查询任何数据字典表) )。当然,您可能希望排除某些模式,例如SYS和模式,SYSTEM而这些模式可能包含您可能不在乎的大量Oracle表。

或者,如果您无权访问DBA_TABLES,则可以通过ALL_TABLES视图查看您的帐户有权访问的所有表:

SELECT owner, table_name
  FROM all_tables

虽然,这可能是数据库中可用表的子集(ALL_TABLES向您显示已授予用户访问权限的所有表的信息)。

如果您只关心自己拥有的表,而不关心自己有权访问的表,则可以使用USER_TABLES:

SELECT table_name
  FROM user_tables

由于USER_TABLES仅具有有关您拥有的表的信息,因此它没有一OWNER列–顾名思义,所有者是您。

甲骨文也有一些遗留的数据字典views– TAB,DICT,TABS,并CAT为example–可能被使用。通常,除非绝对需要将脚本反向移植到Oracle 6,否则我建议不要使用这些旧式视图。Oracle很长时间以来都没有更改这些视图,因此它们经常在使用较新类型的对象时遇到问题。例如,TAB和CAT视图均显示有关用户回收站中表的信息,而[DBA|ALL|USER]_TABLES视图均将其过滤掉。 CAT还显示带有TABLE_TYPE“ TABLE”的物化视图日志的信息,这不太可能是您真正想要的。 DICT结合了表格和同义词,并且不会告诉您对象的所有者。



 类似资料:
  • 问题内容: 是否有一种快速的方法可以从中的所有表获取所有列名,而不必列出所有表? 问题答案:

  • 我有一个springframework启动应用程序,在这个应用程序上我有很多定时cron,现在我正在创建一个rest控制器(GET),我想在其中获取项目上所有定时cron的列表(元数据) 调度pplication.java 1班。JAVA 2班。JAVA 应用yml 这是我的Rest控制器

  • 问题内容: 我有一个对象列表,其中每个对象返回。我如何使用Java 8流仅获得一个? 类具有以下方法; 我有 我正在尝试的是 但是上面的行没有返回 ,而是 我不想要的。 问题答案: 您应该用来从包含在主列表中每个对象中的列表中创建一个列表。请检查; 该调用适用于列表中包含with 的情况,因为这将导致下一行,因此我们应该将其过滤掉。还有其他方法可以实现这一点; -- -- 您可以按如下方式包含来自

  • 问题内容: 我想学习如何从MS SQL数据库中获取具有标识列的所有表的列表。 问题答案:

  • 问题内容: 我想获得属于某个包的所有类及其所有子级的列表。这些类可能已经或可能尚未加载到JVM中。 问题答案: 这不是编程解决方案,但你可以运行 然后JVM会丢弃它正在加载的内容以及从何处卸载。

  • 问题内容: 我刚接触Oracle,想查找用户’john’创建的所有表。 我通过以下命令通过命令行连接到Oracle数据库: 如何列出给定用户(例如john)创建的所有表? 问题答案: 这将获得所有以“ JOHN”用户为所有者的表: 或者 ([TL; DR]通常需要使用大写。假设用户是使用该语句创建的,那么Oracle的默认行为是将所有对象名称(即表,列,用户等)都转换为大写。查询数据字典,在这种情