Oracleデータベースにクエリを実行して、その中のすべてのテーブルの名前を表示するにはどうすればよいですか?
Oracleデータベースにクエリを実行して、その中のすべてのテーブルの名前を表示するにはどうすればよいですか?
回答:
SELECT owner, table_name
  FROM dba_tablesこれは、DBA_TABLESデータディクショナリビューにアクセスできることを前提としています。それらの権限を持っていないが必要な場合は、DBAがそのテーブルに対する権限を明示的に付与すること、またはDBAがSELECT ANY DICTIONARY権限またはSELECT_CATALOG_ROLEロールを付与することを要求できます(いずれもデータディクショナリテーブルのクエリを許可します) )。もちろん、あなたのような特定のスキーマ除外することもできますSYSし、SYSTEMあなたはおそらく気にしないことをOracle表の数が多いです。
または、へのアクセス権がない場合はDBA_TABLES、ALL_TABLESビューからアカウントがアクセスできるすべてのテーブルを表示できます。
SELECT owner, table_name
  FROM all_tablesただし、データベースで使用可能なテーブルのサブセットである場合があります(ALL_TABLESユーザーがアクセスを許可されているすべてのテーブルの情報が表示されます)。  
自分がアクセスできるテーブルではなく、自分が所有するテーブルだけに関心がある場合は、次のように使用できますUSER_TABLES。
SELECT table_name
  FROM user_tables以来USER_TABLES唯一のあなたが所有していることの表についての情報を持っている、それは持っていないOWNER列-定義によって所有者を、あなたはあります。
Oracleはまた、辞書views--レガシーデータの数を持ってTAB、DICT、TABS、およびCAT使用することができexample--ため。一般に、スクリプトをOracle 6にバックポートする必要がない限り、これらのレガシービューを使用することはお勧めしません。たとえばTAB、CATビューとビューはどちらもユーザーのごみ箱にあるテーブルに関する情報を表示しますが、[DBA|ALL|USER]_TABLESビューはすべてそれらを除外します。  CATまたTABLE_TYPE、「TABLE」のマテリアライズドビューログに関する情報も表示されます。  DICTテーブルとシノニムを組み合わせたもので、オブジェクトの所有者はわかりません。
クエリuser_tablesを実行dba_tablesしても機能しませんでした。
これはしました:  
select table_name from all_tables  さらに一歩進んで、cols(all_tab_columns)と呼ばれる別のビューがあります。これは、特定の列名を含むテーブルを確認するために使用できます。
例えば:
SELECT table_name, column_name
FROM cols
WHERE table_name LIKE 'EST%'
AND column_name LIKE '%CALLREF%';ESTで始まる名前を持つすべてのテーブルと、名前のどこかにCALLREFを含む列を検索します。
これは、たとえば、テーブルと列の命名規則に応じて、結合する列を決定するときに役立ちます。
select * from cols、0行が返されました。
                    sqlplus使用しsqlplusている場合、列が破損している場合は、最初にいくつかのパラメータを設定して見やすくすることができます(これらの変数は、sqlplusセッションを終了した後も保持されません)。
set colsep '|'
set linesize 167
set pagesize 30
set pagesize 1000次に、次のようなものを使用して、すべてのテーブル名を表示できます。
SELECT table_name, owner, tablespace_name FROM all_tables;@Justin Caveが言及しているように、これを使用して、所有しているテーブルのみを表示できます。
SELECT table_name FROM user_tables;一部の「テーブル」は実際には「ビュー」である場合があるため、次のようなものを実行してみることもできます。
SELECT view_name FROM all_views;これにより、次のようにかなり受け入れられるようになります。

pagesize 30とpagesize 1000?
                    現在のユーザーのテーブルを選択する簡単なクエリ:
  SELECT table_name FROM user_tables;以下のデータディクショナリビューを試してください。
tabs
dba_tables
all_tables
user_tables現在のユーザーが所有するテーブルをリストするuser_tablesから選択してみてください。
以下のクエリを使用してすべてのテーブルの名前を表示するOracleデータベース
SELECT所有者、table_name FROM dba_tables; SELECT所有者、table_name FROM all_tables; SELECT table_name FROM user_tables;
もっと見る:http ://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html
select * from dba_tablesログインしたユーザーがsysdba特権を持っている場合にのみ、すべてのユーザーのすべてのテーブルを提供します。
使用することを指す答えは見つかりませんでした
DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)私のバージョンも追加することにしました。このビューは、オブジェクトテーブルも返すため、実際にはDBA_TABLESよりも多くを返します(http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm)。
Oracleデータディクショナリを使用して、Oracleオブジェクトに関する情報を取得できます。
さまざまな方法でテーブルのリストを取得できます。
select * 
from dba_tablesまたは例:
select * 
from dba_objects 
where object_type = 'TABLE' 次に、テーブル名を使用してテーブルの列を取得できます。
select * 
from dba_tab_columns次に、依存関係(トリガー、ビューなど)のリストを取得できます。
select * 
from dba_dependencies
where referenced_type='TABLE' and referenced_name=:t_name 次に、このオブジェクトのテキストソースを取得できます。
select * from dba_sourceまた、必要に応じて、USERまたはALLビューを使用できますDBA。
以下のクエリから、列の詳細を含むすべてのテーブルを取得できます。
SELECT * FROM user_tab_columns;以下は、SQLクエリのコメント付きスニペットであり、使用できるオプションを説明しています。
-- need to have select catalog role
SELECT * FROM dba_tables;
-- to see tables of your schema
SELECT * FROM user_tables;
-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;SQLcl(Oracle Databaseの無料のコマンドラインインターフェース)で利用可能な新機能は次のとおりです。
Tables エイリアス。
次に、機能の使用法と追加の側面を示すいくつかの例を示します。最初に、sqlコマンドライン(sql.exeWindowsの場合)セッションに接続します。データを表示する他のコマンドまたはクエリを実行する前に、このsqlcl固有のコマンドを入力することをお勧めします。
SQL> set sqlformat ansiconsole     -- resizes the columns to the width of the 
                                   -- data to save space SQL> tables
TABLES
-----------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
..tablesエイリアスが何を参照しているかを知るには、単にalias list <alias>
SQL> alias list tables
tables - tables <schema> - show tables from schema
--------------------------------------------------
 select table_name "TABLES" from user_tablesこのエイリアスはデフォルトでSQLclの下にあるため、定義する必要はありません。特定のスキーマのテーブルを一覧表示する場合、新しいユーザー定義のエイリアスを使用し、表示されている列のセットのみを使用してスキーマ名をバインド引数として渡します。
SQL> alias tables_schema = select owner, table_name, last_analyzed from all_tables where owner = :ownr;
その後、単にスキーマ名を引数として渡すことができます
SQL> tables_schema HR
OWNER   TABLE_NAME               LAST_ANALYZED
HR      DUMMY1                   18-10-18
HR      YOURTAB2                 16-11-18
HR      YOURTABLE                01-12-18
HR      ID_TABLE                 05-12-18
HR      REGIONS                  26-05-18
HR      LOCATIONS                26-05-18
HR      DEPARTMENTS              26-05-18
HR      JOBS                     26-05-18
HR      EMPLOYEES                12-10-18
..
..より高度な定義済みエイリアスはと呼ばれTables2、他のいくつかの列を表示します。
SQL> tables2
Tables
======
TABLE_NAME                 NUM_ROWS   BLOCKS   UNFORMATTED_SIZE COMPRESSION     INDEX_COUNT   CONSTRAINT_COUNT   PART_COUNT LAST_ANALYZED
AN_IP_TABLE                       0        0                  0 Disabled                  0                  0            0 > Month
PARTTABLE                         0        0                  0                           1                  0            1 > Month
TST2                              0        0                  0 Disabled                  0                  0            0 > Month
TST3                              0        0                  0 Disabled                  0                  0            0 > Month
MANAGE_EMPLYEE                    0        0                  0 Disabled                  0                  0            0 > Month
PRODUCT                           0        0                  0 Disabled                  0                  0            0 > Month
ALL_TAB_X78EHRYFK                 0        0                  0 Disabled                  0                  0            0 > Month
TBW                               0        0                  0 Disabled                  0                  0            0 > Month
DEPT                              0        0                  0 Disabled                  0                  0            0 > Monthバックグラウンドで実行されるクエリを確認するには、次のように入力します。
alias list tables2これによりcolumn、SQL * Plusで一般的に使用される定義済みの定義とともに、少し複雑なクエリが表示されます。
ジェフ・スミスはここでエイリアスについて詳しく説明しています
実際、SQLクエリを介してテーブルのリストを作成することは可能です。ERWIN、Toad Data Modeler、ERBuilderなどのデータディクショナリの生成を可能にするツールを使用して、リストを作成することもできます。ます。これらのツールを使用すると、テーブル名に加えて、フィールド、タイプ、オブジェクト(トリガー、シーケンス、ドメイン、ビューなど)が得られます
以下の手順に従って、テーブル定義を生成します。
データベースは、エンティティ関係図としてソフトウェアに表示されます。
SHOW TABLES(MySQLの中で行われたように)動作しますか?