好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
问题:在Oracle中获取所有表目录? 关闭 返回上一级  

问题:在Oracle中获取所有表目录?
+ 查看更多

发布日期:2018-02-23 10:02
分类:SQL
浏览次数:149
描述:要怎样查询Oracle数据库中所有的表名?
解答:
SELECT owner, table_name
  FROM dba_tables
假设你有权利看到DBA_TABLES的数据字典,你可以使用上面的方法。如果你没有权利,但又需要访问,你可以直接请求DBA授予你权限使用所有表,或者DBA授予SELECT ANY DICTIONARY、SELECT_CATALOG_ROLE权限,这两个特权都可以让你完成目的。这样你可以排除掉一些Ocacle中一些很多而且你根本用不到的表比如:SYS、SYSTEM。
还有一种可能,你没有权限访问DBA_TABLES,你就只能查询你账号创建的所有表。
SELECT owner, table_name
  FROM all_tables
这些只能让你访问数据库中的一部分由你自己创建的表。
如果你只想查询一些用户拥有的表,那么你可以这样
SELECT table_name
  FROM user_tables
因为user_tables中只含有用户创建的表信息,没有定义一个栏目叫做owner。
Oracle有一些过时可用的数据字典:TAB, DICT, TABS,*和 CAT。我不建议使用这些过时的视图除非一定要在Oracle6上安装补丁。Oracle已经很久没有维护这些视图,所以经常会有一些问题出现。比如:TAB 和 CAT会显示一些已经被过滤器过滤掉的信息。CAT还会显示一些实体化视图,这些可能都是你不想得到的。DICT会将表和数据库指针结合在一起,而且很难辨别所拥有的对象是哪一个。
上一篇在SQL中如何使用join做一个更新声明
将存储过程的结果插入到临时表中下一篇
下一篇将存储过程的结果插入到临时表中

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号