怎么用sql语句查看oracle数据库里的所有表

直接使用SQL查询系统表。
要检查所有表,请使用 select from all_tables。
排除用户表,添加到没有表名的位置(从 user_tables 中选择 table_name)。
例如,如果 DBA 用户想要查看所有表,只需从 all_tables 中选择即可。
要查看当前用户表,请使用 select from user_tables。
all_tables 是一个系统视图,包含用户可见的所有表。
user_tables是用户视图,只查看当前用户自己的表。
例如,在Oracle数据库1 2 c中,这两种方法都可以直接使用。
称一下体重。

oracle里查出某个数据库里的所有表名

说白了,Oracle就是通过这三个数据字典视图来查找表名的:DBA/Table/USER。
低权限用户的查看范围较小。
DBA 是全局的,USER 是本地的。
我们先来说说最重要的事情。
去年我运行一个电子商务系统时,我很长一段时间都被 DBA_TABLES 权限问题困扰,直到我意识到我必须使用 exp/imp 来提取数据。
还有一点是,如果你在PL/SQL中运行这个查询,ALL_TABLES肯定比DBA_TABLES更快,因为它只扫描自己的用户范围。
如果您有大约 3 000 个表,ALL_TABLES 将在几秒钟内生成结果,而 DBA_TABLES 将必须等待几分钟。
一开始我以为USER_TABLES和ALL_TABLES类似,后来发现我错了。
USER_TABLES 实时更新,而 ALL_TABLES 有时会延迟几分钟同步。
等等,还有一件事。
这些视图中的数据实际上是来自数据库的 rowid,而不是表本身。
用技术术语来说,这称为“索引寻址”。
事实上,提前一点点拖延就会导致一切都落后。
事实上,除非您具有执行全局操作的 DBA 权限,否则您可能需要考虑更频繁地使用 ALL_TABLES。
请注意不要将权限授予不需要的人。
这真是一个陷阱。