如何列出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