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';
それは動作しません –
かなり奇妙な...それはオラクルのデータベースですか?試してみてください:select * from user_tables;しかし、この方法であなたのテーブルだけを見ることができます –
SQL> select * from all_tables where owner = 'john'; 行が選択されていません –
あなたはとにかくあなたは、すべてのデータ・ディクショナリを見つけることができますも
select * from
USER_TABLES;
を使用することができます。これは、「JOHN」のすべてのテーブルを取得しますここhttps://docs.oracle.com/cd/B28359_01/server.111/b28310/tables014.htm
あなたが
を使用することができ、テーブルを一覧表示するにはSELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';
あなたがスキーマの所有者としてログインしているので、あなたが
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'JOHN'
を使用することができ、スキーマのサイズを確認するには、あなたも
を使用することができます
Johnがオブジェクトテーブルを所有していない場合(おそらく誰も使用しないので)、すべてを取得するには 'ALL_ALL_TABLES'をクエリする必要があります。 –