如何列出Oracle SQL中的架构中的所有表?如何列出Oracle SQL中的架构中的所有表?
回答
要看到另一个架构中的所有表,你需要有以下系统权限的一种或多种:
SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE
或大铁锤,DBA角色。
在使用这些的,你可以选择:
SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
没有这些系统权限,你只能看到你的表已被授予访问权限的一定程度,无论是直接还是通过角色。
SELECT DISTINCT OWNER, OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
最后,您可以随时查询数据字典为自己的表,因为你对你的表的权利不能被撤销(如10克):
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
您可以查询USER_TABLES
select TABLE_NAME from user_tables
这就是您的架构中的所有表,而不是A架构中的所有表。此外,* _ TABLEBLES数据字典视图(DBA_TABLES,ALL_TABLES,USER_TABLES)包含视图。 – 2010-02-11 21:04:43
将“包含视图”替换为“可以包含Oracle版本的视图”。 – 2010-02-11 21:14:53
@Adam Musch使用Oracle 10g R2进行测试,它没有返回视图。 – Sathya 2010-02-11 23:27:21
试试这个,更换?与您的架构名称
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA =?
AND TABLE_TYPE = 'BASE TABLE'
看我的simple utility显示一些关于数据库架构的信息。它是基于:Reverse Engineering a Data Model Using the Oracle Data Dictionary
SELECT table_name from all_tables where owner = 'YOURSCHEMA';
schemanaame应该在大写 – 2010-02-11 22:27:53
这将只显示* YOURSCHEMA中的所有*表,如果由YOURSCHEMA运行或由具有Adam Musch提及的特权的用户运行。否则,它只显示YOURSCHEMA中我们已被授予权限的表。 – APC 2010-02-12 07:17:55
如果您正在使用JDBC(Java)的访问Oracle,你可以使用DatabaseMetadata类。如果您使用ADO.NET访问Oracle,则可以使用类似的方法。
如果您使用ODBC访问Oracle,则可以使用SQLTables函数。否则,如果您只需要SQLPlus或类似的Oracle客户端中的信息,则已经提到的其中一个查询将会执行。例如:
select TABLE_NAME from user_tables
如果你登录为普通用户没有DBA权限,您可以使用以下命令查看您自己的模式的所有表和视图。
select * from tab;
select * from cat;
它会显示在USER_CATALOG你的架构猫代名词所有表
select TABLE_NAME from user_tables;
上面的查询会给你出现在该用户的所有表的名称;
select * from user_tables;
(显示所有表)
如果您需要获得表的大小为好,这将是得心应手:
select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1
SELECT表名,所有者FROM ALL_TABLES哪里owner ='schema_name'order by table_name
- 1. 列表在Oracle架构中的所有约束
- 2. 如何从Oracle架构中删除表的列表?
- 3. 如何使用T-SQL列出SQL Server中的所有表名?
- 4. 查看Oracle中表中的所有列
- 5. 如何列出MSSQL中的所有表?
- 6. 如何在Oracle SQL Developer中查看数据库的架构树列表?
- 7. 用SQL Alchemy列出现有架构中的列
- 8. 架构中所有表的行数
- 9. 如何使用Squirrel SQL列出数据库中的所有表?
- 10. LOOP中的PL/SQL EXECUTE IMMEDIATE(截断架构中所有表的过程)
- 11. 找出sql服务器中的表中所有有用的列
- 12. 如何使用treetable来显示Oracle SQL表中的所有行?
- 13. SQL Oracle 10g列出所有数据库表和列
- 14. 如何更改SQL Server Compact Edition表架构中的列顺序?
- 15. 如何列出mysqli表中列出的所有相关数据?
- 16. 如何在ms sql server中更改架构所有者?
- 17. 列出查询的所有列(Oracle)
- 18. 如何在SQL Server中使用不同列表的所有列
- 19. 如何在sql中显示多个表中的所有列?
- 20. Oracle所有表的列表,表中的值
- 21. 架构SQL表
- 22. 的Oracle SQL查询列出前一个月的所有日期
- 23. 如何列出变量列表中的所有位置?
- 24. 如何列出长列表格式中的所有元素?
- 25. 如何列出表格中的所有列?
- 26. 如何在Laravel中列出嵌套表中的所有项目
- 27. 如何挑出J中列表中的所有负数?
- 28. 如何列出SQL Server中的所有索引视图?
- 29. 如何在SQL Server中列出所有需要的月份?
- 30. 如何在Oracle中找到列中的所有功能索引
除了使用'%_OBJECTS'而不是'%_TABLES'外,还有“最完整的答案”。 – APC 2010-02-12 07:14:54
我记得在9i中,视图将在%_TABLES中列出 - 例如,试图自动清空架构最终会导致诸如DROP TABLE REALLY_A_VIEW CASCADE CONSTRAINTS抛出错误之类的语句。因此,您必须使用MINUS/NOT IN/NOT EXISTS删除视图,或者再次运行%_OBJECTS。另外,针对%_OBJECTS还留下了一些诱人的暗示! – 2010-02-12 16:45:44
查询中绝对不需要“DISTINCT”。 'owner,object_name'在'ALL_OBJECTS'中是唯一的 – 2013-08-20 09:17:21