2016-07-12 13 views
0

Oracleには新しく、ユーザー 'john'によって作成されたすべてのテーブルを検索したいと考えています。Oracleの特定のユーザーのすべてのテーブルを一覧表示します

私は、次のコマンドで、コマンドラインを介してOracleデータベースに接続します。

SQLPLUSジョン/ passwdの

私は、例えば、特定のユーザーが作成したすべてのテーブルのリストを表示するにはどうすればよいですジョン?

答えて

3

を説明ユーザーは所有者です

SELECT * FROM USER_TABLES; 

又は

SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN'; 

([TL; DR] 'JOHN'は、典型的には、大文字にする必要があります。ユーザーjohnCREATE USER john ...ステートメントを使用して作成されたとすると、Oracleのデフォルトの動作はすべてのオブジェクト名(表、列、ユーザーなど)を大文字に変換することです。あなたは、データ・ディクショナリを照会する場合(あなたが二重引用符でそれをラップしない限り、あなたは元のコマンドで使用されるケースをしていない)テーブルの詳細は、この場合に保存されます。)

+0

Johnがオブジェクトテーブルを所有していない場合(おそらく誰も使用しないので)、すべてを取得するには 'ALL_ALL_TABLES'をクエリする必要があります。 –

0

試してみてください。

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

それは動作しません –

+0

かなり奇妙な...それはオラクルのデータベースですか?試してみてください:select * from user_tables;しかし、この方法であなたのテーブルだけを見ることができます –

+0

SQL> select * from all_tables where owner = 'john'; 行が選択されていません –

2

あなたが

を使用することができ、テーブルを一覧表示するには
SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN'; 

あなたがスキーマの所有者としてログインしているので、あなたが

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

を使用することができ、スキーマのサイズを確認するには、あなたも

を使用することができます
関連する問題