sql 列出所有表 oracle,sql – 获取Oracle中的所有表的列表?

SELECT owner, table_name

FROM dba_tables

假设您有权访问DBA_TABLES数据字典视图。如果您没有这些权限,但需要它们,则可以请求DBA显式授予您对该表的权限,或者DBA授予您SELECT ANY DICTIONARY权限或SELECT_CATALOG_ROLE角色(其中任一个都允许您查询任何数据字典表)。当然,您可能想要排除具有大量Oracle表的某些模式(如SYS和SYSTEM),您可能不需要关心它们。

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

SELECT owner, table_name

FROM all_tables

尽管这可能是数据库中可用表的一个子集(ALL_TABLES显示您的用户已被授予访问权限的所有表的信息)。

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

SELECT table_name

FROM user_tables

由于USER_TABLES仅具有关于您拥有的表的信息,因此它没有OWNER列 – 根据定义,所有者是您。

Oracle还具有许多可以使用的遗留数据字典视图 – 例如TAB,DICT,TABS和CAT。一般来说,我不建议使用这些旧视图,除非您绝对需要将脚本反向运行到Oracle 6. Oracle在很长时间内没有更改这些视图,因此它们通常对较新类型的对象有问题。例如,TAB和CAT视图都显示有关用户回收站中的表的信息,而[DBA | ALL | USER] _TABLES视图全部过滤出来。 CAT还显示具有TABLE_TYPE为“TABLE”的物化视图日志的信息,这不太可能是您真正想要的。 DICT组合表和同义词,并不告诉你谁拥有对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值