2016-07-12 44 views
0

我是Oracle新手,想查找用戶'john'創建的所有表格。列出Oracle中給定用戶的所有表格

我通過命令行連接到Oracle數據庫通過以下命令:

sqlplus的約翰/ passwd文件

如何列出一個給定用戶創建的所有表例如約翰?

回答

3

這將讓所有的表,其中「約翰」用戶是店主:

SELECT * FROM USER_TABLES; 

SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN'; 

([TL; DR] 'JOHN'通常需要在大寫。假設用戶john是使用CREATE USER john ...語句創建的,那麼Oracle的默認行爲是將所有對象名稱(即表,列,用戶等)轉換爲大寫。當你查詢數據字典時,表格細節將被存儲在這種情況下(而不是你在原始命令中使用的情況,除非用雙引號將其包含)。)

+0

如果John擁有任何對象表(他可能沒有,因爲沒有人使用它們),您需要查詢'ALL_ALL_TABLES'來獲取所有內容。 –

0

嘗試:

select * 
from all_tables 
where owner = 'jhon'; 
+0

它不起作用 –

+0

很奇怪......這是一個oracle數據庫?嘗試:select * from user_tables;但這樣你只能看到你的表 –

+0

SQL> select * from all_tables where owner ='john'; 沒有選擇行 –

2

要列出表格,您可以使用

SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN'; 

TO看到的架構的大小,你可以使用

SELECT sum(bytes) 
    FROM dba_segments 
WHERE owner = 'JOHN' 

因爲您登錄的模式所有者,您還可以使用

SELECT SUM(bytes) 
    FROM user_segments 
相關問題