我是Oracle新手,想查找用戶'john'創建的所有表格。列出Oracle中給定用戶的所有表格
我通過命令行連接到Oracle數據庫通過以下命令:
sqlplus的約翰/ passwd文件
如何列出一個給定用戶創建的所有表例如約翰?
我是Oracle新手,想查找用戶'john'創建的所有表格。列出Oracle中給定用戶的所有表格
我通過命令行連接到Oracle數據庫通過以下命令:
sqlplus的約翰/ passwd文件
如何列出一個給定用戶創建的所有表例如約翰?
這將讓所有的表,其中「約翰」用戶是店主:
SELECT * FROM USER_TABLES;
或
SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';
([TL; DR] 'JOHN'
通常需要在大寫。假設用戶john
是使用CREATE USER john ...
語句創建的,那麼Oracle的默認行爲是將所有對象名稱(即表,列,用戶等)轉換爲大寫。當你查詢數據字典時,表格細節將被存儲在這種情況下(而不是你在原始命令中使用的情況,除非用雙引號將其包含)。)
嘗試:
select *
from all_tables
where owner = 'jhon';
它不起作用 –
很奇怪......這是一個oracle數據庫?嘗試:select * from user_tables;但這樣你只能看到你的表 –
SQL> select * from all_tables where owner ='john'; 沒有選擇行 –
您還可以使用
select * from
USER_TABLES;
反正你可以找到所有的數據字典解釋這裏https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables014.htm
要列出表格,您可以使用
SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';
TO看到的架構的大小,你可以使用
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'JOHN'
因爲您登錄的模式所有者,您還可以使用
SELECT SUM(bytes)
FROM user_segments
如果John擁有任何對象表(他可能沒有,因爲沒有人使用它們),您需要查詢'ALL_ALL_TABLES'來獲取所有內容。 –